从PDF中提取附件- Java

本教程展示如何使用LEADTOOLS SDK在Java应用程序中提取PDF文件中包含的附件。

概述
总结 本教程介绍如何在Java应用程序中提取PDF附件并将其转换为PNG文件。
完成时间 30分钟
项目 下载教程项目(2kb)
平台 Java应用程序
IDE Eclipse / IntelliJ
运行许可证 下载LEADTOOLS
用另一种语言试试

所需的知识

步骤熟悉创建项目的基本步骤添加引用和设置License教程,在工作之前从PDF中提取附件- Java教程。

创建项目并添加LEADTOOLS引用

中创建的项目的副本开始添加引用和设置License教程。如果该项目不可用,请按照该教程中的步骤创建它。

所需要的参考资料取决于项目的目的。引用可以由本地添加. jar档案位于< INSTALL_DIR > \ LEADTOOLS21 \ Bin \ Java

本项目需要参考资料如下:

有关应用程序需要哪些JAR文件的完整列表,请参阅Java应用程序中包含的文件

设置License文件

许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License

有两种类型的运行时许可证:

请注意

中更详细地介绍了添加LEADTOOLS引用和设置许可添加引用和设置License教程。

添加PDF附件提取和转换代码

随着项目的创建、引用的添加和许可的设置,编码就可以开始了。

打开_Main.javaPackage Explorer.将下列语句添加到进口顶部的块。

Java
进口. io . *;进口java.nio.file。*;进口java.util.ArrayList;进口leadtools。*;进口leadtools.codecs。*;进口leadtools.document。*;进口leadtools.document.converter。*;进口leadtools.document.writer。*;

将以下全局变量添加到_Main类。

Java
私人静态字符串outputDir;

main ()方法,添加以下命令将库路径设置为C DLL文件所在的位置,并加载之前导入的LEADTOOLS库。

Java
公共静态无效main (String [] args)抛出IOExceptionPlatform.setLibPath (“C: \ \ LEADTOOLS21 \ \ Bin \ \ CDLL \ \ x64”);Platform.loadLibrary (LTLibrary.LEADTOOLS);Platform.loadLibrary (LTLibrary.CODECS);Platform.loadLibrary (LTLibrary.DOCUMENT);Platform.loadLibrary (LTLibrary.DOCUMENT_CONVERTER);Platform.loadLibrary (LTLibrary.DOCUMENT_WRITER);Platform.loadLibrary (LTLibrary.IMAGE_PROCESSING_CORE);SetLicense ();ExtractPDFAttachments ();

控件中添加一个新方法_Main类命名ExtractPDFAttachments ().方法中调用此方法main ()方法调用SetLicense ()方法,如上所示。将代码添加到ExtractPDFAttachments ()方法从给定的PDF中提取附件。

Java
私人静态无效ExtractPDFAttachments ()ArrayList documents =ArrayList < > ();outputDir =输出目录的文件路径文件tempOutput =文件(outputDir);如果(! tempOutput.exists ())tempOutput.mkdir ();LoadDocumentOptions选项=LoadDocumentOptions ();options.setLoadAttachmentsMode (DocumentLoadAttachmentsMode.AS_ATTACHMENTS);字符串loadFile ="带附件的PDF文件路径"LEADDocument document = DocumentFactory。loadFromFile (loadFile,选项);如果(document.getPages().size() > 0)documents.add(文档);(DocumentAttachment附件:document.getAttachments()){LoadAttachmentOptions attachmentOptions =LoadAttachmentOptions ();attachmentOptions.setAttachmentNumber (attachment.getAttachmentNumber ());LEADDocument loadDocument = document.loadDocumentAttachment(attachmentOptions);documents.add (loadDocument);ConvertDocuments(文档、RasterImageFormat.PNG);

控件中添加一个新方法_Main类命名(ArrayList documents, RasterImageFormat imageFormat).方法中调用此方法ExtractPDFAttachments ()方法,如上所示。将下面的代码添加到ConvertDocuments ()方法将PDF附件转换为PNG文件。

Java
私人静态无效(ArrayList documents, RasterImageFormat imageFormat)DocumentConverter =DocumentConverter ();(LEADDocument文档:文档){字符串名称= (document.getName() ==|| document.getName().isEmpty()) ?“DocumentAttachment”: document.getName ();字符串outputFile =路径。get(outputDir, name + .“。”.toString .toAbsolutePath + RasterCodecs.getExtension (imageFormat)) () ();intCount = 1;((文件(outputFile) .exists ())outputFile =路径。get(outputDir, name + ."("+ count++ +”)。”.toString .toAbsolutePath + RasterCodecs.getExtension (imageFormat)) () ();DocumentConverterJobData jobData =DocumentConverterJobData ();jobData.setDocument(文档);jobData.setDocumentFormat (DocumentFormat.USER);jobData.setRasterImageFormat (imageFormat);jobData.setRasterImageBitsPerPixel (0);jobData.setOutputDocumentFileName (outputFile);DocumentConverterJob job = converter.getJobs().createJob(jobData);converter.getJobs () .runJob(工作);如果(job.getErrors().size() > 0)(var错误:job.getErrors())System.out.println ("转换过程中出错:"+ error.getError().getMessage() +“\ n”);其他的System.out.println ("已成功转换:"+ outputFile +“\ n”);

运行项目

按下运行项目Ctrl + F11,或选择运行->运行

如果正确地执行了这些步骤,应用程序将提取PDF附件并将其转换为光栅PNG文件。

总结

方法提取PDF附件loadDocumentAttachment ()方法并将它们转换为光栅图像。此外,它还介绍了如何使用LEADDocumentDocumentConverter,LoadAttachmentOptions类。

另请参阅

net
iOS
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。