在生产环境中测试,没有水印。
在您需要的地方使用。
使用功能齐全的产品30天。
几分钟内即可启动和运行。
在产品试用期间,全面访问我们的支持工程团队
using IronOcr;
string imageText = new IronTesseract().Read(@"images\image.png").Text;Install-Package IronOcr
IronOCR的独特之处在于它能够自动检测和读取不完全扫描图像和 PDF 文档中的文本。 IronTesseract类提供了最简单的 API。
尝试其他代码示例,以获得对 C# OCR 操作的更精细控制。
IronOCR在任何平台上提供了已知的最先进的Tesseract构建,速度更快,精度更高,并提供了本地 DLL 和 API。
支持适用于 .NET Framework、Standard、Core、Xamarin 和 Mono 的 Tesseract 3、Tesseract 4 和 Tesseract 5。
IronTesseract以使用直观的 APIRead方法执行OCRText属性获取 OCR 结果using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
ocrTesseract.Language = OcrLanguage.Arabic;
using (var ocrInput = new OcrInput())
{
ocrInput.LoadImage(@"images\arabic.gif");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
// Example with a Custom Trained Font Being used:
var ocrTesseractCustomerLang = new IronTesseract();
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata");
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest);
using (var ocrInput = new OcrInput())
{
ocrInput.LoadPdf(@"images\mixed-lang.pdf");
var ocrResult = ocrTesseractCustomerLang.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}Install-Package IronOcr
IronOCR 支持 125 种国际语言。 除了默认安装的英语之外,还可以通过 NuGet 将其他语言包添加到您的 .NET 项目中,或者从我们的语言页面下载其他语言包。 大多数语言都提供快速、标准(推荐)和最佳质量三种版本。 最佳质量选项可能提供更准确的结果,但处理时间也会更慢。IronOCR 语言支持
using IronOcr;
using IronSoftware.Drawing;
// We can delve deep into OCR results as an object model of
// Pages, Barcodes, Paragraphs, Lines, Words and Characters
// This allows us to explore, export and draw OCR content using other APIs/
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using var ocrInput = new OcrInput();
var pages = new int[] { 1, 2 };
ocrInput.LoadImageFrames("example.tiff", pages);
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
foreach (var page in ocrResult.Pages)
{
// Page object
int PageNumber = page.PageNumber;
string PageText = page.Text;
int PageWordCount = page.WordCount;
// null if we dont set Ocr.Configuration.ReadBarCodes = true;
OcrResult.Barcode[] Barcodes = page.Barcodes;
AnyBitmap PageImage = page.ToBitmap(ocrInput);
double PageWidth = page.Width;
double PageHeight = page.Height;
double PageRotation = page.Rotation; // angular correction in degrees from OcrInput.Deskew()
foreach (var paragraph in page.Paragraphs)
{
// Pages -> Paragraphs
int ParagraphNumber = paragraph.ParagraphNumber;
string ParagraphText = paragraph.Text;
AnyBitmap ParagraphImage = paragraph.ToBitmap(ocrInput);
int ParagraphX_location = paragraph.X;
int ParagraphY_location = paragraph.Y;
int ParagraphWidth = paragraph.Width;
int ParagraphHeight = paragraph.Height;
double ParagraphOcrAccuracy = paragraph.Confidence;
OcrResult.TextFlow paragrapthText_direction = paragraph.TextDirection;
foreach (var line in paragraph.Lines)
{
// Pages -> Paragraphs -> Lines
int LineNumber = line.LineNumber;
string LineText = line.Text;
AnyBitmap LineImage = line.ToBitmap(ocrInput);
int LineX_location = line.X;
int LineY_location = line.Y;
int LineWidth = line.Width;
int LineHeight = line.Height;
double LineOcrAccuracy = line.Confidence;
double LineSkew = line.BaselineAngle;
double LineOffset = line.BaselineOffset;
foreach (var word in line.Words)
{
// Pages -> Paragraphs -> Lines -> Words
int WordNumber = word.WordNumber;
string WordText = word.Text;
AnyBitmap WordImage = word.ToBitmap(ocrInput);
int WordX_location = word.X;
int WordY_location = word.Y;
int WordWidth = word.Width;
int WordHeight = word.Height;
double WordOcrAccuracy = word.Confidence;
foreach (var character in word.Characters)
{
// Pages -> Paragraphs -> Lines -> Words -> Characters
int CharacterNumber = character.CharacterNumber;
string CharacterText = character.Text;
AnyBitmap CharacterImage = character.ToBitmap(ocrInput);
int CharacterX_location = character.X;
int CharacterY_location = character.Y;
int CharacterWidth = character.Width;
int CharacterHeight = character.Height;
double CharacterOcrAccuracy = character.Confidence;
// Output alternative symbols choices and their probability.
// Very useful for spellchecking
OcrResult.Choice[] Choices = character.Choices;
}
}
}
}
}Install-Package IronOcr
IronOCR 使用 Tesseract 5 扫描每一页,并返回一个高级结果对象。 这包含位置数据、图像、文本、统计置信度、备选符号、字体名称、字号装饰、字重以及每个元素的位置:


IronOCR 的特别之处在于它能够读取扫描质量不佳的文档。 它独特的预处理库减少了背景噪音、旋转、扭曲和歪斜对齐,并简化颜色并增强分辨率和对比度。 Iron 的 AutoOCR 和高级 OCR 设置为开发人员提供了达到最佳结果的工具,每次。
了解更多
IronOCR 以纯文本和条形码数据输出内容。 另一种结构化数据对象模型允许开发人员接收以结构化标题、段落、行、单词和字符格式的所有内容,直接输入到 .NET 应用程序中。
了解更多





C# Tesseract OCR

Jim 一直是 IronOCR 开发的领导人物。 Jim 设计和构建 OCR 的图像处理算法和读取方法。
查看 Jim 的 Tesseract 比较
C# OCR ASP.NET

了解 Gemma 的团队如何使用 IronOCR 从图像中读取文本用于他们的存档软件。 Gemma 分享了她自己的代码示例。
查看 Gemma 的图像到文本教程


Iron团队在.NET软件组件市场拥有超过10年的经验。