LEADTOOLS使用教程:從多個(gè)圖像創(chuàng)建多頁(yè)文件
工作場(chǎng)所中存在許多多頁(yè)的文件。能夠加載、拆分和提取是許多應(yīng)用程序的重要需求。一些最常見(jiàn)的多頁(yè)文件類(lèi)型是:PDF,TIFF和Microsoft Office格式,例如Docx,Doc,Xls和Xlsx。LEADTOOLS支持所有這些格式以及30多種其他多頁(yè)格式。由于存在多種不同類(lèi)型的多頁(yè)格式,因此嘗試支持常見(jiàn)的格式可能會(huì)讓人頭疼,而試圖支持所有這些格式的也像一場(chǎng)噩夢(mèng)。幸運(yùn)的是,LEADTOOLS SDK可以用不到五行代碼來(lái)完成此應(yīng)用程序。
LEADTOOLS (Lead Technology)由Moe Daher and Rich Little創(chuàng)建于1990年,其總部設(shè)在北卡羅來(lái)納州夏洛特。LEAD的建立是為了使Daher先生在數(shù)碼圖象與壓縮技術(shù)領(lǐng)域的發(fā)明面向市場(chǎng)。在過(guò)去超過(guò)30年的發(fā)展歷程中,LEAD以其在全世界主要國(guó)家中占有的市場(chǎng)領(lǐng)導(dǎo)地位,在數(shù)碼圖象開(kāi)發(fā)工具領(lǐng)域中已成為既定的全球領(lǐng)導(dǎo)者。LEADTOOLS開(kāi)發(fā)與發(fā)布的LEAD是屢獲殊榮的開(kāi)發(fā)工具包。
點(diǎn)擊查看LEADTOOLS 系列產(chǎn)品
前幾天,我正在協(xié)助客戶(hù)編寫(xiě)應(yīng)用程序,將收據(jù)掃描輸入到其文檔管理系統(tǒng)中。他們的大多數(shù)客戶(hù)使用手機(jī)掃描收據(jù),手機(jī)通常將照片導(dǎo)出為JPG或PNG(單頁(yè)格式)。他們希望將同一天同一位客戶(hù)發(fā)送的所有圖像合并為一個(gè)PDF。我提到了他如何使用RasterCodecs類(lèi)中的Save方法將多個(gè)單頁(yè)文件保存到同一輸出。他能夠立即使用它并創(chuàng)建可行的解決方案。利用LEADTOOLS Imaging庫(kù),開(kāi)發(fā)人員可以在不到五分鐘的時(shí)間內(nèi)快速創(chuàng)建類(lèi)似的應(yīng)用程序。
LEADTOOLS Imaging包括產(chǎn)品:LEADTOOLS Document Imaging Suite、LEADTOOLS Medical Imaging Suite、LEADTOOLS Imaging Pro、LEADTOOLS Recognition Imaging SDK、LEADTOOLS PACS Imaging等等,您可以點(diǎn)擊產(chǎn)品名稱(chēng)下載試用版。
以下是從單個(gè)文件創(chuàng)建多頁(yè)文件的基本代碼。如果要查看LEADTOOLS文檔上的完整分步教程,請(qǐng)參閱文章后面的“從多個(gè)圖像創(chuàng)建多頁(yè)文件”教程。
// Create Multipage File out of Single Files string[] files = System.IO.Directory.GetFiles(@"C:\Users\Public\Documents\LEADTOOLS Images", "*.cmp"); using (RasterCodecs codecs = new RasterCodecs()) foreach (var file in files) using (RasterImage image = codecs.Load(file)) codecs.Save(image, outputFile, RasterImageFormat.TifJpeg411, 0, 1, -1, 1, CodecsSavePageMode.Append);
從多個(gè)圖像創(chuàng)建多頁(yè)文件-控制臺(tái)C#
本教程說(shuō)明如何創(chuàng)建一個(gè)C#Windows控制臺(tái)應(yīng)用程序,該應(yīng)用程序使用RasterCodecs類(lèi)將圖像合并到一個(gè)多頁(yè)文件中。創(chuàng)建項(xiàng)目并添加LEADTOOLS參考
創(chuàng)建一個(gè)新的C#Windows Console項(xiàng)目,并添加以下必要的LEADTOOLS引用。
如果使用NuGet引用,則本教程需要以下NuGet軟件包:
- Leadtools.Formats.Raster.Common
如果使用本地DLL引用,則需要以下DLL:
本地DLL位于 <INSTALL_DIR>\LEADTOOLS 20\Bin\Dotnet4\x64
- Leadtools.dll
- Leadtools.Codecs.dll
- Leadtools.Codecs.Cmp.dll
- Leadtools.Codecs.Tif.dll
設(shè)置許可證文件
許可證可解鎖項(xiàng)目所需的功能。必須在調(diào)用任何工具包功能之前進(jìn)行設(shè)置。
有兩種類(lèi)型的運(yùn)行時(shí)許可證:
- 評(píng)估許可證,在下載評(píng)估工具包時(shí)獲得。它允許評(píng)估工具包。
- 部署許可證。
添加合并圖像代碼
創(chuàng)建項(xiàng)目,添加參考和許可證集后,即可開(kāi)始編碼。
在解決方案資源管理器中打開(kāi)Program.cs,然后使用Leadtools添加; 并使用Leadtools.Codecs; 聲明到頂部的using塊。
在Program類(lèi)中,添加一個(gè)稱(chēng)為MergeFiles(string [] files,string outputFile)的新方法。
創(chuàng)建要合并的文件名數(shù)組。 對(duì)于本教程,“ C:\ Users \ Public \ Documents \ LEADTOOLS圖像”中的所有CMP文件將被合并。
C#
// Using block at the top using System; using System.IO; using Leadtools; using Leadtools.Codecs;
C#
static void Main(string[] args) { SetLicense(); string[] files = Directory.GetFiles(@"C:\Users\Public\Documents\LEADTOOLS Images", "*.cmp"); string multipageFile = @"C:\Users\Public\Documents\LEADTOOLS Images\merged.tif"; MergeFiles(files, multipageFile); }
C#
static void MergeFiles(string[] files, string outputFile) { using (RasterCodecs codecs = new RasterCodecs()) foreach (var file in files) using (RasterImage image = codecs.Load(file)) codecs.Save(image, outputFile, RasterImageFormat.TifJpeg411, 0, 1, -1, 1, CodecsSavePageMode.Append); }
因?yàn)镽asterCodecs該類(lèi)實(shí)現(xiàn)IDisposable,所以請(qǐng)確保它在using語(yǔ)句中以進(jìn)行適當(dāng)處理。
運(yùn)行項(xiàng)目
按F5或選擇Debug- > Start Debugging運(yùn)行項(xiàng)目。
如果正確執(zhí)行了這些步驟,則該應(yīng)用程序?qū)⑦\(yùn)行并創(chuàng)建一個(gè)名為merged.tif的新文件,或者將頁(yè)面追加到該文件(如果已存在)。該文件應(yīng)包含LEADTOOLS Images目錄中CMP文件的所有圖像。