提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:胡涛|2023-02-24 10:13:12.433|阅读 58 次
概述:本教程介绍如何使用 LEADTOOLS SDK 在 C# Windows 控制台应用程序中提取包含在 PDF 文件中的附件。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
LEADTOOLS 是一个综合工具包的集合,用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别和处理,PDF,打印捕获,归档,注释和显示功能。利用业界领先的图像处理技术,能够智能识别文件,可以用来识别任何类型的扫描或传真形式的图像。
本教程介绍如何使用 LEADTOOLS SDK 在 C# Windows 控制台应用程序中提取包含在 PDF 文件中的附件。
概括 | 本教程介绍如何在 C# Windows 控制台应用程序中提取 PDF 附件并将它们转换为 PNG 文件。 |
完成时间 | 30分钟 |
视觉工作室项目 | |
平台 | C# Windows 控制台应用程序 |
集成开发环境 | 视觉工作室 2017、2019 |
开发许可 | LEADTOOLS |
用另一种语言试试 |
|
所需知识
在学习从 PDF 中提取附件 - 控制台 C#教程之前,通过查看添加引用和设置许可证教程熟悉创建项目的基本步骤。
创建项目并添加 LEADTOOLS 引用从添加引用和设置许可证教程中创建的项目副本开始。如果您没有该项目,请按照该教程中的步骤创建它。
所需的参考取决于项目的目的。可以通过以下两种方法之一(但不能同时使用)添加引用。
如果使用 NuGet 引用,本教程需要以下 NuGet 包:
如果使用本地 DLL 引用,则需要以下 DLL。
DLL 位于<INSTALL_DIR>\LEADTOOLS22\Bin\Dotnet4\x64:
有关您的应用程序需要哪些 DLL 文件的完整列表,请参阅要包含在您的应用程序中的文件。
设置许可证文件许可证解锁项目所需的功能。它必须在调用任何工具包函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时许可证。
有两种类型的运行时许可证:
笔记
添加 LEADTOOLS NuGet 和本地引用以及设置许可证在添加引用和设置许可证教程中有更详细的介绍。
创建项目、添加参考和设置许可证后,就可以开始编码了。
在解决方案资源管理器中,打开Program.cs。将以下语句添加到顶部的 using 块中Program.cs:
[C#]
using System; using System.Collections.Generic; using System.IO; using Leadtools; using Leadtools.Caching; using Leadtools.Codecs; using Leadtools.Document; using Leadtools.Document.Converter; using Leadtools.Document.Writer;
将以下全局变量添加到类中Program。
[C#]
static FileCache cache; static string OutputDir = "Output";
Program.cs在named中创建一个新方法ExtractPDFAttachments()。在set license调用下调用方法中的方法Main(),如下图。
[C#]
static void Main(string[] args) { try { SetLicense(); ExtractPDFAttachments(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Console.WriteLine("Press any key to exit..."); Console.ReadKey(true); }
static void ExtractPDFAttachments() { cache = new FileCache { CacheDirectory = "\\cache" }; List<LEADDocument> documents = new List<LEADDocument>(); if (!Directory.Exists(OutputDir)) Directory.CreateDirectory(OutputDir); LoadDocumentOptions options = new LoadDocumentOptions { Cache = cache, LoadAttachmentsMode = DocumentLoadAttachmentsMode.AsAttachments }; LEADDocument document = DocumentFactory.LoadFromFile(@"FILE PATH TO PDF WITH ATTACHMENTS", options); if (document.Pages.Count > 0) documents.Add(document); foreach (DocumentAttachment attachment in document.Attachments) { LoadAttachmentOptions attachmentOptions = new LoadAttachmentOptions { AttachmentNumber = attachment.AttachmentNumber, }; LEADDocument loadDocument = document.LoadDocumentAttachment(attachmentOptions); documents.Add(loadDocument); } ConvertDocuments(documents, RasterImageFormat.Png); }
在Program类中,添加一个名为 的新方法ConvertDocuments(IEnumerable<LEADDocument> documents, RasterImageFormat imageFormat)。该方法将在方法内部调用ExtractPDFAttachments(),如上所示。将下面的代码添加到ConvertDocuments()将 PDF 附件转换为 PNG 文件的方法中。
static void ConvertDocuments(IEnumerable<LEADDocument> documents, RasterImageFormat imageFormat) { DocumentConverter converter = new DocumentConverter(); foreach (LEADDocument document in documents) { string name = string.IsNullOrEmpty(document.Name) ? "DocumentAttachment" : document.Name; string outputFile = Path.Combine(OutputDir, $"{name}.{RasterCodecs.GetExtension(imageFormat)}"); int count = 1; while (File.Exists(outputFile)) outputFile = Path.Combine(OutputDir, $"{name}({count++}).{RasterCodecs.GetExtension(imageFormat)}"); DocumentConverterJobData jobData = new DocumentConverterJobData { Document = document, Cache = cache, DocumentFormat = DocumentFormat.User, RasterImageFormat = imageFormat, RasterImageBitsPerPixel = 0, OutputDocumentFileName = outputFile, }; DocumentConverterJob job = converter.Jobs.CreateJob(jobData); converter.Jobs.RunJob(job); if (job.Errors.Count > 0) foreach (var error in job.Errors) Console.WriteLine($"Error during conversion: {error.Error.Message}\n"); else Console.WriteLine($"Successfully Converted to {outputFile}...\n"); } }
按F5或选择Debug -> Start Debugging运行项目。
如果正确执行了这些步骤,应用程序将运行并将给定 PDF 文件中的所有附件转换为单独的 PNG 文件。
以上便是从 PDF 中提取附件 - 控制台 C#,如果您还有其他疑问,欢迎咨询我们或者加入我们官方技术交流群。
欢迎下载|体验更多LEADTOOL产品
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
在处理电子表格时,尤其是在专业和数据导向型环境中,正确设置 Excel 单元格内的数字格式至关重要。本文将介绍如何使用 Spire.XLS for Java 设置 Excel 单元格的数字格式,帮助轻松创建精美且结构清晰的电子表格。
从 Visual Paradigm 17.2 版开始,您可以创建自己的项目模板并与团队共享。这样团队成员就可以轻松创建符合团队标准的新项目。本文将指导您完成为团队创建项目模板的过程。
本文主要介绍如何使用DevExpress WinForms Data Grid组件实现固定列,欢迎下载最新版组件体验!
长期以来,Navicat 的数据库管理和开发工具一直都有将协同合作融合到设计理念中。本文将重点介绍如何使用 Navicat Premium 17 共享数据库对象。
20多年的老牌图像处理控件,支持TWAIN扫描、200多种图像效果、150多种图像格式…
LEADTOOLS Document Suite Developer ToolkitLEADTOOLS Document Imaging Suite SDK是LEADTOOLS SDK中各种特点的精选组合,这套强大的工具利用了LEAD行业领先的图像处理技术来智能地识别文档的特征,而根据文档的特征可以识别扫描的或传真的任何类型的表格图像。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢