LEADTOOLS使用教程:从多个图像创建多页文件
工作场所中存在许多多页的文件。能够加载、拆分和提取是许多应用程序的重要需求。一些最常见的多页文件类型是:PDF,TIFF和Microsoft Office格式,例如Docx,Doc,Xls和Xlsx。LEADTOOLS支持所有这些格式以及30多种其他多页格式。由于存在多种不同类型的多页格式,因此尝试支持常见的格式可能会让人头疼,而试图支持所有这些格式的也像一场噩梦。幸运的是,LEADTOOLS SDK可以用不到五行代码来完成此应用程序。
LEADTOOLS (Lead Technology)由Moe Daher and Rich Little创建于1990年,其总部设在北卡罗来纳州夏洛特。LEAD的建立是为了使Daher先生在数码图象与压缩技术领域的发明面向市场。在过去超过30年的发展历程中,LEAD以其在全世界主要国家中占有的市场领导地位,在数码图象开发工具领域中已成为既定的全球领导者。LEADTOOLS开发与发布的LEAD是屡获殊荣的开发工具包。
前几天,我正在协助客户编写应用程序,将收据扫描输入到其文档管理系统中。他们的大多数客户使用手机扫描收据,手机通常将照片导出为JPG或PNG(单页格式)。他们希望将同一天同一位客户发送的所有图像合并为一个PDF。我提到了他如何使用RasterCodecs类中的Save方法将多个单页文件保存到同一输出。他能够立即使用它并创建可行的解决方案。利用LEADTOOLS Imaging库,开发人员可以在不到五分钟的时间内快速创建类似的应用程序。
LEADTOOLS Imaging包括产品:LEADTOOLS Document Imaging Suite、LEADTOOLS Medical Imaging Suite、LEADTOOLS Imaging Pro、LEADTOOLS Recognition Imaging SDK、LEADTOOLS PACS Imaging等等,您可以点击产品名称下载试用版。
以下是从单个文件创建多页文件的基本代码。如果要查看LEADTOOLS文档上的完整分步教程,请参阅文章后面的“从多个图像创建多页文件”教程。
// 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);
从多个图像创建多页文件-控制台C#
本教程说明如何创建一个C#Windows控制台应用程序,该应用程序使用RasterCodecs类将图像合并到一个多页文件中。创建项目并添加LEADTOOLS参考
创建一个新的C#Windows Console项目,并添加以下必要的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
设置许可证文件
许可证可解锁项目所需的功能。必须在调用任何工具包功能之前进行设置。
有两种类型的运行时许可证:
- 评估许可证,在下载评估工具包时获得。它允许评估工具包。
- 部署许可证。
添加合并图像代码
创建项目,添加参考和许可证集后,即可开始编码。
在解决方案资源管理器中打开Program.cs,然后使用Leadtools添加; 并使用Leadtools.Codecs; 声明到顶部的using块。
在Program类中,添加一个称为MergeFiles(string [] files,string outputFile)的新方法。
创建要合并的文件名数组。 对于本教程,“ 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); }
因为RasterCodecs该类实现IDisposable,所以请确保它在using语句中以进行适当处理。
运行项目
按F5或选择Debug- > Start Debugging运行项目。
如果正确执行了这些步骤,则该应用程序将运行并创建一个名为merged.tif的新文件,或者将页面追加到该文件(如果已存在)。该文件应包含LEADTOOLS Images目录中CMP文件的所有图像。