本教程展示了如何在PDF文件中提取附件包含在Windows控制台应用程序使用c# LEADTOOLS SDK。
概述 | |
---|---|
总结 | 本教程介绍了如何提取PDF附件并将它们转换为PNG文件c# Windows控制台应用程序。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(3 KB) |
平台 | c# Windows控制台应用程序 |
IDE | Visual Studio 2017中,2019年 |
开发许可 | 下载LEADTOOLS |
试试用另一种语言 |
熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前从一个PDF提取附件- c#控制台教程。
从项目中创建的副本添加引用和设置一个许可证教程。如果你没有这个项目,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。引用可以通过添加一个或另一个下面的两种方法(但不是全部)。
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools.Document.Sdk
如果使用本地DLL的引用,下面的DLL是必要的。
dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64
:
Leadtools.dll
Leadtools.Caching.dll
Leadtools.Codecs.dll
Leadtools.Codecs.Cmp.dll
Leadtools.Codecs.Png.dll
Leadtools.Document.dll
Leadtools.Document.Converter.dll
Leadtools.Document.Pdf.dll
Leadtools.Document.Raster.dll
Leadtools.Document.Writer.dll
Leadtools.Pdf.dll
对于一个完整的列表的应用程序所需的DLL文件,请参考文件包含在您的应用程序。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
请注意
添加LEADTOOLS NuGet和本地引用设置许可中会详细介绍添加引用和设置一个许可证教程。
与项目创建、添加引用,许可,可以开始编码。
在解决方案资源管理器,打开Program.cs
。添加以下语句使用块的顶部Program.cs
:
使用系统;
使用System.Collections.Generic;
使用先;
使用Leadtools;
使用Leadtools.Caching;
使用Leadtools.Codecs;
使用Leadtools.Document;
使用Leadtools.Document.Converter;
使用Leadtools.Document.Writer;
添加下面的全局变量程序
类。
静态FileCache缓存;
静态字符串OutputDir =“输出”;
创建一个新的方法Program.cs
命名ExtractPDFAttachments ()
。调用该方法Main ()
方法,根据设置许可调用,如下所示。
静态无效主要(字符串[]参数)
{
试一试
{
SetLicense ();
ExtractPDFAttachments ();
}
抓(异常交货)
{
Console.WriteLine (ex.ToString ());
}
Console.WriteLine (“按任意键退出……”);
Console.ReadKey (真正的);
}
将下面的代码添加到ExtractPDFAttachments ()
方法提取从给定的PDF附件。
静态无效ExtractPDFAttachments ()
{
缓存=新FileCache {CacheDirectory =“\ \缓存”};
= < LEADDocument >文档列表新列表< LEADDocument > ();
如果(! Directory.Exists (OutputDir))
Directory.CreateDirectory (OutputDir);
LoadDocumentOptions选项=新LoadDocumentOptions
{
缓存=缓存,
LoadAttachmentsMode = DocumentLoadAttachmentsMode.AsAttachments
};
LEADDocument文档= DocumentFactory.LoadFromFile (@“PDF带附件文件路径”、选择);
如果(document.Pages。数> 0)
documents.Add(文档);
foreach(DocumentAttachment附件在document.Attachments)
{
LoadAttachmentOptions attachmentOptions =新LoadAttachmentOptions {AttachmentNumber =附件。AttachmentNumber};
LEADDocument loadDocument = document.LoadDocumentAttachment (attachmentOptions);
documents.Add (loadDocument);
}
ConvertDocuments(文档、RasterImageFormat.Png);
}
在程序
类,添加一个新方法ConvertDocuments (IEnumerable < LEADDocument >文件,RasterImageFormat imageFormat)
。该方法将被称为内ExtractPDFAttachments ()
方法,如上所示。将下面的代码添加到ConvertDocuments ()
方法将PDF附件转换为PNG文件。
静态无效ConvertDocuments (IEnumerable < LEADDocument >文件,RasterImageFormat imageFormat)
{
DocumentConverter转换器=新DocumentConverter ();
foreach(LEADDocument文档在文档)
{
字符串name =字符串.IsNullOrEmpty (document.Name) ?“DocumentAttachment”:document.Name;
字符串outputFile =路径。结合(OutputDir, $“{name} {RasterCodecs.GetExtension。(imageFormat)}”);
int数= 1;
而(File.Exists (outputFile))
outputFile =路径。结合(OutputDir, $“{name}({计数+ +})。{RasterCodecs.GetExtension (imageFormat)}”);
DocumentConverterJobData jobData =新DocumentConverterJobData
{
文档=文档,
缓存=缓存,
DocumentFormat = DocumentFormat.User,
RasterImageFormat = imageFormat,
RasterImageBitsPerPixel = 0,
OutputDocumentFileName = outputFile,
};
DocumentConverterJob工作= converter.Jobs.CreateJob (jobData);
converter.Jobs.RunJob(工作);
如果(job.Errors。数> 0)
foreach(var错误在job.Errors)
Console.WriteLine ($在转换”的错误:{error.Error.Message} \ n”);
其他的
Console.WriteLine ($“成功转化为{outputFile}…\ n”);
}
}
按运行项目F5,或通过选择调试- >开始调试。
如果步骤正确之后,应用程序运行和给定的PDF文件中的所有附件转换为单独的PNG文件。
本教程展示了如何提取PDF附件使用LoadDocumentAttachment ()
方法,将它们转换为光栅图像。同时,它介绍了如何使用LEADDocument
,DocumentConverter
,LoadAttachmentOptions
类。