翻譯|使用教程|編輯:胡濤|2023-02-09 10:39:06.677|閱讀 165 次
概述:本教程介紹如何使用 LEADTOOLS SDK 在 C# Windows 控制臺應用程序中提取包含在 PDF 文件中的附件。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
LEADTOOLS 是一個綜合工具包的集合,用于將識別、文檔、醫療、成像和多媒體技術整合到桌面、服務器、平板電腦、網絡和移動解決方案中,是一項企業級文檔自動化解決方案,有捕捉,OCR,OMR,表單識別和處理,PDF,打印捕獲,歸檔,注釋和顯示功能。利用業界領先的圖像處理技術,能夠智能識別文件,可以用來識別任何類型的掃描或傳真形式的圖像。
本教程介紹如何使用 LEADTOOLS SDK 在 C# Windows 控制臺應用程序中提取包含在 PDF 文件中的附件。
| 概括 | 本教程介紹如何在 C# Windows 控制臺應用程序中提取 PDF 附件并將它們轉換為 PNG 文件。 | 
| 完成時間 | 30分鐘 | 
| 視覺工作室項目 | |
| 平臺 | C# Windows 控制臺應用程序 | 
| 集成開發環境 | 視覺工作室 2017、2019 | 
| 開發許可 | LEADTOOLS | 
| 用另一種語言試試 | 
 | 
所需知識
在學習從 PDF 中提取附件 - 控制臺 C#教程之前,通過查看添加引用和設置許可證教程熟悉創建項目的基本步驟。
創建項目并添加 LEADTOOLS 引用從添加引用和設置許可證教程中創建的項目副本開始。如果您沒有該項目,請按照該教程中的步驟創建它。
所需的參考取決于項目的目的。可以通過以下兩種方法之一(但不能同時使用)添加引用。
如果使用 NuGet 引用,本教程需要以下 NuGet 包:
如果使用本地 DLL 引用,則需要以下 DLL。
DLL 位于<INSTALL_DIR>\LEADTOOLS22\Bin\Dotnet4\x64:
有關您的應用程序需要哪些 DLL 文件的完整列表,請參閱要包含在您的應用程序中的文件。
設置許可證文件許可證解鎖項目所需的功能。它必須在調用任何工具包函數之前設置。有關詳細信息,包括針對不同平臺的教程,請參閱設置運行時許可證。
有兩種類型的運行時許可證:
筆記
添加 LEADTOOLS NuGet 和本地引用以及設置許可證在添加引用和設置許可證教程 中有更詳細的介紹。
創建項目、添加參考和設置許可證后,就可以開始編碼了。
在解決方案資源管理器中,打開Program.cs。將以下語句添加到頂部的 using 塊中Program.cs:
[C#]
using System; using System.Collections.Generic; using System.IO; using Leadtools; using Leadtools.Caching; using Leadtools.Codecs; using Leadtools.Document; using Leadtools.Document.Converter; using Leadtools.Document.Writer;
將以下全局變量添加到Program類中。
[C#]
static FileCache cache; static string OutputDir = "Output";
將以下代碼添加InitOcrEngine()到初始化IOcrEngine.
Program.cs在named中創建一個新方法ExtractPDFAttachments()。在set license調用下調用方法中的Main()方法,如下圖。
[C#]
static void Main(string[] args)
{
try
{
SetLicense();
ExtractPDFAttachments();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey(true);
}
static void ExtractPDFAttachments()
{
cache = new FileCache { CacheDirectory = "\\cache" };
List<LEADDocument> documents = new List<LEADDocument>();
if (!Directory.Exists(OutputDir))
Directory.CreateDirectory(OutputDir);
LoadDocumentOptions options = new LoadDocumentOptions
{
Cache = cache,
LoadAttachmentsMode = DocumentLoadAttachmentsMode.AsAttachments
};
LEADDocument document = DocumentFactory.LoadFromFile(@"FILE PATH TO PDF WITH ATTACHMENTS", options);
if (document.Pages.Count > 0)
documents.Add(document);
foreach (DocumentAttachment attachment in document.Attachments)
{
LoadAttachmentOptions attachmentOptions = new LoadAttachmentOptions { AttachmentNumber = attachment.AttachmentNumber, };
LEADDocument loadDocument = document.LoadDocumentAttachment(attachmentOptions);
documents.Add(loadDocument);
}
ConvertDocuments(documents, RasterImageFormat.Png);
}
在Program類中,添加一個名為 的新方法ConvertDocuments(IEnumerable<LEADDocument> documents, RasterImageFormat imageFormat)。該方法將在方法內部調用ExtractPDFAttachments(),如上所示。將下面的代碼添加ConvertDocuments()到將 PDF 附件轉換為 PNG 文件的方法中。
static void ConvertDocuments(IEnumerable<LEADDocument> documents, RasterImageFormat imageFormat)
{
DocumentConverter converter = new DocumentConverter();
foreach (LEADDocument document in documents)
{
string name = string.IsNullOrEmpty(document.Name) ? "DocumentAttachment" : document.Name;
string outputFile = Path.Combine(OutputDir, $"{name}.{RasterCodecs.GetExtension(imageFormat)}");
int count = 1;
while (File.Exists(outputFile))
outputFile = Path.Combine(OutputDir, $"{name}({count++}).{RasterCodecs.GetExtension(imageFormat)}");
DocumentConverterJobData jobData = new DocumentConverterJobData
{
Document = document,
Cache = cache,
DocumentFormat = DocumentFormat.User,
RasterImageFormat = imageFormat,
RasterImageBitsPerPixel = 0,
OutputDocumentFileName = outputFile,
};
DocumentConverterJob job = converter.Jobs.CreateJob(jobData);
converter.Jobs.RunJob(job);
if (job.Errors.Count > 0)
foreach (var error in job.Errors)
Console.WriteLine($"Error during conversion: {error.Error.Message}\n");
else
Console.WriteLine($"Successfully Converted to {outputFile}...\n");
}
}
按F5或選擇Debug -> Start Debugging運行項目。
如果正確執行了這些步驟,應用程序將運行并將給定 PDF 文件中的所有附件轉換為單獨的 PNG 文件。
以上便是將 OCR 結果導出到 JSON - C# .NET 6,如果您還有其他疑問,歡迎咨詢我們或者加入我們官方技術交流群。
歡迎下載|體驗更多LEADTOOL產品
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn