本教程展示了如何创建一个c# Windows控制台应用程序,它创建一个新的LEADDocument,从目录加载文档,然后将它们添加到创建的LEADDocument中,最后将创建的合并的LEADDocument输出到流。
概述 | |
---|---|
总结 | 本教程介绍如何在c# Windows控制台应用程序中使用LEADDocument合并文档 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(3kb) |
平台 | c# Windows控制台应用程序 |
IDE | Visual Studio 2017, 2019 |
开发许可 | 下载LEADTOOLS |
用另一种语言试试 |
|
来熟悉创建项目的基本步骤添加引用和设置License教程,在工作之前使用LEADDocument - Console c#合并文档教程。
中创建的项目的副本开始添加引用和设置License教程。如果您没有该项目,请按照该教程中的步骤创建它。
所需的参考资料取决于项目的目的。可以通过以下两种方法中的一种或另一种添加引用(但不能同时添加)。对于这个项目,需要以下参考资料:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools.Document.Sdk
如果使用本地DLL引用,则需要以下DLL。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64
:
Leadtools.dll
Leadtools.Codecs.dll
Leadtools.Codecs.Cmp.dll
Leadtools.Codecs.Tif.dll
Leadtools.Document.dll
Leadtools.Document.Converter.dll
Leadtools.Document.Pdf.dll
Leadtools.Document.Writer.dll
Leadtools.Pdf.dll
Leadtools.Ocr.dll
Leadtools.Ocr.LEADEngine.dll
有关应用程序需要哪些DLL文件的完整列表,请参阅要包含在您的申请中的文件.
许可证解锁项目所需的特性。它必须在调用任何工具包函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
请注意
中更详细地介绍了添加LEADTOOLS NuGet和本地引用以及设置许可证添加引用和设置License教程。
随着项目的创建、引用的添加和许可证的设置,编码就可以开始了。
在解决方案资源管理器,打开Program.cs
.添加一个名为MemoryStream MergePdfFiles(string dir, IOcrEngine ocrEngine)
返回合并PDF文档的流。添加下面的代码来创建一个新的LEADDocument,合并PDF文档,并从创建的PDF文档中收集流。
//添加到using块
使用系统;
使用先;
使用Leadtools;
使用Leadtools.Document;
使用Leadtools.Document.Converter;
使用Leadtools.Document.Writer;
使用Leadtools.Ocr;
静态无效主要(字符串[]参数)
{
字符串文件夹=@“C: \ LEADTOOLS22 \ Resources \图片”;
SetLicense ();
使用(iocrenginemanager . createengine (ocrengintype . lead))
{
ocrEngine。启动(零,零,零,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);
MemoryStream ms = MergePdfFiles(folder, ocrEngine);
ms.Position = 0;
文件。WriteAllBytes (@“C: \ LEADTOOLS22 \资源\ \ merged.pdf图像”ms.GetBuffer ());
}
控制台。WriteLine (“按任意键退出…”);
Console.ReadKey ();
}
静态MemoryStream MergePdfFiles (字符串dir, IOcrEngine ocrEngine)
{
DocumentWriter DocumentWriter =新DocumentWriter ();
//获取当前PDF选项
pdfOptions = documentWriter.GetOptions(DocumentFormat.Pdf)作为PdfDocumentOptions;
//设置选项
documentWriter.SetOptions (DocumentFormat.Pdf pdfOptions);
pdfOptions。ImageOverText =真正的;
varoutputStream =新MemoryStream ();
varcreateOptions =新CreateDocumentOptions ();
LEADDocument virtualDocument = DocumentFactory.Create(createOptions);
virtualDocument。AutoDisposeDocuments =真正的;
virtualDocument。Name =“虚拟”;
字符串[] files =目录。getfile (dir,“* . pdf”);
foreach(var文件在文件)
{
LEADDocument childDocument = DocumentFactory。LoadFromFile(文件,新LoadDocumentOptions ());
virtualDocument.Pages.AddRange (childDocument.Pages);
}
//使用DocumentConverter转换virtualDocument来完成文档并收集流
DocumentConverter docConverter =新DocumentConverter ();
docConverter。SetOcrEngineInstance (ocrEngine假);
docConverter.SetDocumentWriterInstance (documentWriter);
varjobData =新DocumentConverterJobData
{
文档= virtualDocument,
OutputDocumentStream = outputStream
DocumentFormat = Leadtools.Document.Writer.DocumentFormat.Pdf
};
varjob = docConverter.Jobs.CreateJob(jobData);
docConverter.Jobs.RunJob(工作);
如果(工作。Status == DocumentConverterJobStatus.Success)
{
控制台。WriteLine ($“成功了!”);
}
其他的
{
控制台。WriteLine (“{0}错误”, job.Status);
foreach(var错误在job.Errors)
{
控制台。WriteLine ({0} at {1}: {2}、错误。操作,错误。InputDocumentPageNumber error.Error.Message);
}
}
返回outputStream;
}
请注意
从子文档向虚拟文档添加页面还没有完成。这意味着来自子文档的源页面仍然只存在于它们最初加载的位置。虚拟文档只包含每个页面所在位置的信息以及关于页面和文件的其他元数据。—虚拟文档可以以文档查看器.-或者可以最终确定虚拟文档,并通过使用文档转换器如本教程所示。这将创建一个合法文档,该文档在自己的文档结构中包含源页面的副本。
通过按运行项目F5,或选择调试->开始调试.
如果正确地执行了步骤,应用程序将运行并创建一个新的虚拟LEADDocument。然后,应用程序从给定目录获取每个PDF文件,并将每个PDF文件添加到虚拟LEADDocument中。最后,它通过将虚拟文档发送到文档转换器.
本教程展示了如何创建一个新的LEADDocument,将PDF文档添加到LEADDocument中,并将流收集到新的LEADDocument中。还介绍了如何使用LEADDocument
而且DocumentConverter
类。