在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
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。
![如何掃描頁面至文字(初學者教程):
圖 4 - 一旦轉換完成,online-convert 會提供一個下載連結,您可以使用該連結來下載包含轉換後文字的文件。如果您想將轉換後的文字上傳至雲端,請使用雲端上傳連結。](/static-assets/ocr/blog/scan-page-to-text-tutorial/scan-page-to-text-tutorial-4.webp)
Online-convert 提供了一種簡單且具有高效 OCR 功能的解決方案,將掃描頁面轉換為純文字,使其可供廣大用戶使用。這是一個對於數位化舊書、從文件中提取文字或僅僅使掃描的文字內容更易於管理等任務來說非常有價值的工具。
結果是一個高度兼容的 PDF 文件,保留了掃描頁面的內容,使其易於編輯和搜索。
雖然像 Online-convert 這樣的免費在線工具及其他 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天完全功能的產品。
幾分鐘內即可啟動並運行。
試用產品期間完全訪問我們的支援工程團隊