本教程展示如何使用LEADTOOLS SDK在Java应用程序中提取PDF文件中包含的附件。
概述 | |
---|---|
总结 | 本教程介绍如何在Java应用程序中提取PDF附件并将其转换为PNG文件。 |
完成时间 | 30分钟 |
项目 | 下载教程项目(2kb) |
平台 | Java应用程序 |
IDE | Eclipse / IntelliJ |
运行许可证 | 下载LEADTOOLS |
用另一种语言试试 |
|
步骤熟悉创建项目的基本步骤添加引用和设置License教程,在工作之前从PDF中提取附件- Java教程。
中创建的项目的副本开始添加引用和设置License教程。如果该项目不可用,请按照该教程中的步骤创建它。
所需要的参考资料取决于项目的目的。引用可以由本地添加. jar
档案位于< INSTALL_DIR > \ LEADTOOLS21 \ Bin \ Java
.
本项目需要参考资料如下:
leadtools.jar
leadtools.annotations.engine.jar
leadtools.codecs.jar
leadtools.document.jar
leadtools.document.converter.jar
leadtools.document.pdf.jar
leadtools.document.raster.jar
leadtools.document.writer.jar
leadtools.imageprocessing.core.jar
leadtools.pdf.jar
leadtools.svg.jar
有关应用程序需要哪些JAR文件的完整列表,请参阅Java应用程序中包含的文件
许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
请注意
中更详细地介绍了添加LEADTOOLS引用和设置许可添加引用和设置License教程。
随着项目的创建、引用的添加和许可的设置,编码就可以开始了。
打开_Main.java
类Package Explorer.将下列语句添加到进口
顶部的块。
进口. io . *;
进口java.nio.file。*;
进口java.util.ArrayList;
进口leadtools。*;
进口leadtools.codecs。*;
进口leadtools.document。*;
进口leadtools.document.converter。*;
进口leadtools.document.writer。*;
将以下全局变量添加到_Main
类。
私人静态字符串outputDir;
在main ()
方法,添加以下命令将库路径设置为C DLL文件所在的位置,并加载之前导入的LEADTOOLS库。
公共静态无效main (String [] args)抛出IOException
{
Platform.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中提取附件。
私人静态无效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
.方法中调用此方法ExtractPDFAttachments ()
方法,如上所示。将下面的代码添加到ConvertDocuments ()
方法将PDF附件转换为PNG文件。
私人静态无效(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 ()
方法并将它们转换为光栅图像。此外,它还介绍了如何使用LEADDocument
,DocumentConverter
,LoadAttachmentOptions
类。