在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
C# OCR库
using IronOcr;
string imageText = new IronTesseract().Read(@"images\image.png").Text;
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// OCR entire document
ocrInput.LoadPdf("example.pdf", Password: "password");
int[] pages = { 1, 2, 3, 4, 5 };
// Alternatively OCR selected page numbers
ocrInput.LoadPdfPages("example.pdf", pages, Password: "password");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\imageWithBarcode.png");
var ocrResult = ocrTesseract.Read(ocrInput);
foreach (var barcode in ocrResult.Barcodes)
{
Console.WriteLine(barcode.Value);
}
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);
}
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
ocrInput.Deskew();
ocrInput.DeNoise();
ocrInput.Despeckle();
ocrInput.EnhanceResolution(225);
ocrInput.Sharpen();
ocrInput.Erode();
ocrInput.Dilate();
ocrInput.Scale(200);
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
// Fast Dictionary
ocrTesseract.Language = OcrLanguage.EnglishFast;
// Turn off unneeded options
ocrTesseract.Configuration.ReadBarCodes = false;
// Assume text is laid out neatly in an orthogonal document
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// First load all image(s)
ocrInput.LoadImage(@"images\image.png");
// Note: You don't need all of them; most users only need Deskew() and occasionally DeNoise()
ocrInput.WithTitle("My Document");
ocrInput.Binarize();
ocrInput.Contrast();
ocrInput.Deskew();
ocrInput.DeNoise();
ocrInput.Despeckle();
ocrInput.Dilate();
ocrInput.EnhanceResolution(300);
ocrInput.Invert();
ocrInput.Rotate(90);
ocrInput.Scale(150);
ocrInput.Sharpen();
ocrInput.ToGrayScale();
ocrInput.Erode();
// WIZARD - If you are unsure use the debug-wizard to test all combinations:
string codeToRun = OcrInputFilterWizard.Run(@"images\image.png", out double confidence, ocrTesseract);
Console.WriteLine(codeToRun);
// Optional: Export modified images so you can view them.
foreach (var page in ocrInput.GetPages())
{
page.SaveAsImage($"filtered_{page.Index}.bmp");
}
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using IronSoftware.Drawing;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage("blue_and_pink.png");
ocrInput.WithTitle("Recolored");
ocrInput.ReplaceColor(Color.Pink, Color.White, 10);
// Pink detection has 10% tolerance
ocrInput.ReplaceColor(Color.Blue, Color.Black, 5);
// Blue detection has 5% tolerance
// Export the modified image so you can manually inspect it.
foreach (var page in ocrInput.GetPages())
{
page.SaveAsImage($"black_and_white_page_{page.Index}.bmp");
}
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
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);
int PageWidth = page.Width;
int 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;
}
}
}
}
}
using IronOcr;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\page1.png");
ocrInput.LoadImage(@"images\page2.bmp");
var page = new int[]{ 2, 3 };
ocrInput.LoadImageFrames(@"images\page3.tiff", page);
ocrInput.Deskew();
var ocrResult = ocrTesseract.Read(ocrInput);
ocrResult.SaveAsSearchablePdf("searchable.pdf");
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
// This is done by default and can be omitted:
// ocrTesseract.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract()
{
Language = OcrLanguage.EnglishBest,
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false,
RenderHocr = true,
BlackListCharacters = "`ë|^",
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
}
};
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
using IronSoftware.Drawing;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// A 41% improvement on speed by specifiying a pixel region
var ContentArea = new Rectangle(x: 215, y: 1250, width: 1335, height: 280);
ocrInput.LoadImage("img/example.png", ContentArea);
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImageFrame("images/multiframe.tiff", 1);
var ocrResult = ocrTesseract.Read(ocrInput);
ocrResult.SaveAsSearchablePdf("searchable.pdf");
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.TargetDPI = 300;
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("scan.pdf");
// Image processing is automatically multi-threaded
ocrInput.Deskew();
// OCR reading is automatically multi-threaded too
var ocrResult = ocrTesseract.Read(ocrInput);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
ocrTesseract.OcrProgress += (_, ocrProgressEventsArgs) =>
{
Console.WriteLine(ocrProgressEventsArgs.ProgressPercent + "% " + ocrProgressEventsArgs.Duration.TotalSeconds + "s");
};
using var input = new OcrInput();
input.LoadPdf("large.pdf");
// Progress events will fire during the read operation even if the main thread is blocked.
var result = ocrTesseract.Read(input);
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
var pages = new int[] { 1, 2 };
ocrInput.LoadImageFrames("images/multiframe.tiff", pages);
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
using IronOcr;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadPdf("scan.pdf", Password: "password");
// Clean up twisted pages
ocrInput.Deskew();
var ocrResult = ocrTesseract.Read(ocrInput);
ocrResult.SaveAsSearchablePdf("searchable.pdf");
using IronOcr;
using System;
var ocrTesseract = new IronTesseract();
ocrTesseract.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata");
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
//PM> Install-Package IronOcr.Languages.Arabic
//PM> Install-Package IronOcr.Languages.Chinese
using IronOcr;
using System;
var Ocr = new IronTesseract();
// Add a primary language (Default is English)
Ocr.Language = OcrLanguage.English;
// Add as many secondary languages as you like
Ocr.AddSecondaryLanguage(OcrLanguage.Arabic);
Ocr.AddSecondaryLanguage(OcrLanguage.ChineseSimplified);
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var Result = Ocr.Read(ocrInput);
Console.WriteLine(Result.Text);
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"images\image.png");
var ocrResult = ocrTesseract.Read(ocrInput);
foreach (var page in ocrResult.Pages)
{
foreach (var word in page.Words)
{
word.ToBitmap(ocrInput).SaveAs($"page{page.PageNumber}_word{word.WordNumber}.png", AnyBitmap.ImageFormat.Png);
}
}
在我们日益数字化的世界里,将扫描页面转换为可编辑文本的能力已成为个人和专业用途的重要工具。无论你是要从打印文档中提取重要信息,还是要将扫描图像转换成数字文本,扫描页面转文本技术都能为你节省时间和精力。在本文中,我们将探讨扫描页面转文本的概念,并介绍一种不同的免费在线工具,它可以帮助你毫不费力地完成这项任务。
扫描页面转换为文本是指将扫描页面(通常存储为图像文件或 PDF)转换为纯文本的过程。通过这种转换,可以更轻松地编辑文本、搜索和处理扫描文档的文本。这一过程的好处很多,包括
数字存档: 将扫描页面转换为纯文本可实现高效的数字存档和文件组织,使其便于今后查阅。
内容提取: 它允许你从书籍、文章和手写笔记等印刷材料中提取文本和其他有价值的内容,用于研究或创建数字备份等各种用途。
编辑和格式化: 将扫描图像或扫描文档转换为纯文本后,你可以轻松地编辑、格式化或将内容整合到其他文档、演示文稿或数字平台中。
对于那些寻求将扫描页面或 PDF 文件转换为文本的用户友好型免费解决方案的人来说,Online-convert.com 是一个极佳的选择。它是一款基于网络的 OCR 转换器 (光学字符识别) 该工具可处理多种语言,并能轻松将扫描页面转换为纯文本格式。下面介绍如何使用它:
选择输出格式: 在大多数情况下,您需要将输出格式选择为纯文本 (TXT) 以确保将扫描页面转换为可编辑文本。您还可以选择其他选项,如 word、excel、powerpoint。
Online-convert 为将扫描页面转换为纯文本提供了一个直接、高效的 OCR 解决方案,使广大用户都能使用。对于旧书数字化、从文件中提取文本,或只是让扫描文本内容更易于管理等任务来说,它是一个非常有价值的工具。
其结果是一个高度兼容的 PDF 文件,保留了扫描页面的内容,使其易于编辑和搜索。
虽然在线转换和其他 OCR 工具等免费在线工具适用于基本的扫描页面到文本的需求,但对于有更高要求的用户来说,还有更高级的解决方案***。
IronOCR 是专为 .NET C# 开发人员设计的专业 OCR 库,具有先进的功能、卓越的准确性和广泛的格式支持。
IronOCR 不仅在扫描页面并将其转换为可编辑文本方面表现出色,而且还能 从图像中读取文字为从各种来源中提取文本提供了多功能解决方案。
IronOCR 的主要亮点包括
无与伦比的准确性: IronOCR 采用最先进的 OCR 技术,即使在处理具有挑战性的字体、语言和布局时,也能提供出色的准确性。
先进的图像处理: 它可以处理不同质量的扫描页面,自动增强和预处理图像,以获得最佳的 OCR 结果。
批量处理: IronOCR 可以处理大批量的扫描页面,因此非常适合有大批量文档转换需求的企业和组织。
格式多样性: 它支持多种输出格式,包括 PDF、Word、Excel 和纯文本,让您可以灵活处理转换后的页面。
它的突出特点之一是支持广泛的语言,涵盖 127 多种国际语言,包括阿拉伯语、中文、英语和其他许多语言。这种广泛的语言支持使其适用于不同的语言要求,让用户可以毫不费力地处理多种语言的内容。
总之,将扫描图像转换为文本和翻译不同语言文本的能力彻底改变了我们在数字时代数字化和管理文档的方式。像 Online-convert 这样的免费在线工具为满足基本需求提供了一个很好的起点,而更先进的解决方案如 IronOCR 为寻求高级功能和最高准确性的用户提供了一个强大的选择。无论您是普通用户还是希望将 OCR 功能集成到应用程序中的开发人员,扫描页面到文本工具都能为您处理数据和文档的扫描页面提供无与伦比的便利和效率。
要亲身体验其变革性影响 IronOCR 我们邀请您利用我们的 免费试用优惠.有关 IronOCR 商业许可的更多信息,请访问 许可证页面.
PM > Install-Package IronOcr
30天试用密钥 立即。
15天试用密钥 立即。
想要免费将IronOCR部署到实际项目中吗?
您的试用密钥应在电子邮件中。试用表格已提交
成功地.
如果不是,请联系
support@ironsoftware.com
想要免费将IronOCR部署到实际项目中吗?
您的试用密钥应在电子邮件中。试用表格已提交
成功地.
如果不是,请联系
support@ironsoftware.com
想要免费将IronOCR部署到实际项目中吗?
您的试用密钥应在电子邮件中。试用表格已提交
成功地.
如果不是,请联系
support@ironsoftware.com
想要免费将IronOCR部署到实际项目中吗?
您的试用密钥应在电子邮件中。试用表格已提交
成功地.
如果不是,请联系
support@ironsoftware.com
免费开始
无需信用卡
在生产中测试无水印。
随时随地为您服务。
获取30天的完全功能产品。
几分钟内即可启动和运行。
在您的产品试用期间,全面访问我们的支持工程团队。
免费开始
无需信用卡
在生产中测试无水印。
随时随地为您服务。
获取30天的完全功能产品。
几分钟内即可启动和运行。
在您的产品试用期间,全面访问我们的支持工程团队。
谢谢!
您的许可证密钥已发送到所提供的电子邮件。联系我们
专业
$600 美元
$299 美元
5个.NET产品,两件的价格
套件总价值:
$7,192 美元
升级价格
今天
只有
$499 美元
24小时后
$1,098 美元