翻譯|使用教程|編輯:胡濤|2022-11-24 14:11:44.693|閱讀 145 次
概述:本教程展示了如何使用System.IO.FileSystemWatcher該類在創(chuàng)建目錄中的文件時引發(fā)事件,以及如何使用DocumentConverter該類將文件轉換并保存為可搜索的 PDF 文件格式。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
LEADTOOLS 是一個綜合工具包的集合,用于將識別、文檔、醫(yī)療、成像和多媒體技術整合到桌面、服務器、平板電腦、網絡和移動解決方案中,是一項企業(yè)級文檔自動化解決方案,有捕捉,OCR,OMR,表單識別和處理,PDF,打印捕獲,歸檔,注釋和顯示功能。利用業(yè)界領先的圖像處理技術,能夠智能識別文件,可以用來識別任何類型的掃描或傳真形式的圖像。
本教程展示了如何使用System.IO.FileSystemWatcher該類在創(chuàng)建目錄中的文件時引發(fā)事件,以及如何使用DocumentConverter該類將文件轉換并保存為可搜索的 PDF 文件格式。
概述 | |
---|---|
概括 | 本教程介紹如何在 C# .NET Core 控制臺應用程序中使用DocumentConverter和System.IO.FileSystemWatcher類將文件轉換為可搜索的 PDF。 |
完成時間 | 30分鐘 |
視覺工作室項目 | |
平臺 | C# .NET Core 控制臺應用程序 |
集成開發(fā)環(huán)境 | 視覺工作室 2019、2022 |
開發(fā)許可 | |
用另一種語言試試 |
|
在使用文件觀察器轉換文件 - C# .NET Core教程之前,通過查看添加引用和設置許可證教程熟悉創(chuàng)建項目的基本步驟。
從添加引用和設置許可證教程中創(chuàng)建的項目副本開始。如果您沒有該項目,請按照該教程中的步驟創(chuàng)建它。
所需的參考取決于項目的目的。可以通過 NuGet 包添加引用。
本教程需要以下 NuGet 包:
有關您的應用程序需要哪些 DLL 文件的完整列表,請參閱中的文件。
設置許可證文件許可證解鎖項目所需的功能。它必須在調用任何工具包函數(shù)之前設置。有關詳細信息,包括針對不同平臺的教程,請參閱設置運行時許可證。
有兩種類型的運行時許可證:
筆記
添加 LEADTOOLS NuGet 引用和設置許可證在添加引用和設置許可證教程 中有更詳細的介紹。
創(chuàng)建項目、添加參考和設置許可證后,就可以開始編碼了。
在解決方案資源管理器中,打開Program.cs。將以下語句添加到using頂部的塊中Program.cs。
【C#】
using System; using System.IO; using Leadtools; using Leadtools.Document; using Leadtools.Document.Converter; using Leadtools.Document.Writer; using Leadtools.Ocr;
將以下全局變量添加到Program類中。
【C#】
static string OutputDirectory; static DocumentConverter docConverter;
在 Main 方法中添加以下代碼以初始化OcrEngine、DocumentConverter和FileSystemWatcher對象。
【C#】
static void Main(string[] args) { if (args.Length != 1) { Console.WriteLine("Usage: Convert-Files-With-a-File-Watcher.exe <directory>"); return; } if (!SetLicense()) Console.WriteLine("Error setting license"); else Console.WriteLine("License file set successfully"); using (IOcrEngine OcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)) { OcrEngine.Startup(null, null, null, @"C:\LEADTOOLS22\Bin\Common\OcrLEADRuntime"); docConverter = new DocumentConverter(); docConverter.SetOcrEngineInstance(OcrEngine, false); docConverter.SetDocumentWriterInstance(new DocumentWriter()); string watchFolder = args[0]; OutputDirectory = Path.Combine(watchFolder, "ConvertedToPDF"); if (!Directory.Exists(OutputDirectory)) Directory.CreateDirectory(OutputDirectory); Console.WriteLine($"Watching folder {watchFolder}.."); using (FileSystemWatcher systemWatcher = new FileSystemWatcher()) { systemWatcher.Path = watchFolder; systemWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; systemWatcher.Filter = "*.*"; systemWatcher.Created += SystemWatcher_Created; systemWatcher.EnableRaisingEvents = true; Console.WriteLine("Press 'q' to quit."); while (Console.Read() != 'q') ; } } }
筆記
因為IOcrEngine接口實現(xiàn)了IDisposable,所以確保它在using聲明中以便正確處理。
創(chuàng)建一個名為 的新方法ConvertFile(string input, string output)。此方法將在FileSystemWatcher.Create事件處理程序內部調用。在新方法中添加以下代碼,將指定文件目錄中的新文件轉換為PDF。
【C#】
private static void ConvertFile(string input, string output) { var inputDocument = DocumentFactory.LoadFromFile(input, new LoadDocumentOptions()); DocumentConverterJobData jobData = new DocumentConverterJobData() { Document = inputDocument, OutputDocumentFileName = output, DocumentFormat = DocumentFormat.Pdf, }; var job = docConverter.Jobs.CreateJob(jobData); docConverter.Jobs.RunJob(job); if (job.Errors.Count > 0) foreach (var converterJobError in job.Errors) Console.WriteLine($"Error During Conversion:{converterJobError.Error.Message}"); else Console.WriteLine($"Converted {input} to PDF. Save location: {output}"); }
創(chuàng)建FileSystemWatcher.Create事件處理程序。將此事件處理程序掛接到Main()方法中,如上所示。將以下代碼添加到事件處理程序以收集輸入文件路徑、創(chuàng)建輸出文件路徑并調用ConvertFile()上面創(chuàng)建的方法。
【C#】
static void SystemWatcher_Created(object sender, FileSystemEventArgs e) { string file = e.FullPath; string output = Path.Combine(OutputDirectory, Path.ChangeExtension(e.Name, "pdf")); ConvertFile(file, output); }
需要在Application arguments中指定要添加 File Watcher 的目錄。要添加目錄,請選擇項目 ->特性,然后導航到“調試”選項卡。
一旦指定了要將文件觀察器添加到的目錄,按F5或選擇Debug -> Start Debugging運行項目。
如果正確執(zhí)行了這些步驟,則會出現(xiàn)控制臺,并且應用程序會偵聽添加到指定文件目錄的任何新文件。添加文件后,應用程序會抓取該文件并將其轉換為可搜索的 PDF。
以上便是 使用 AWS Lambda 轉換文檔 ,如果您還有其他疑問,歡迎咨詢我們或者加入我們官方技術交流群。
歡迎下載|體驗更多LEADTOOL產品
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn