本教程展示如何使用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.jarleadtools.annotations.engine.jarleadtools.codecs.jarleadtools.document.jarleadtools.document.converter.jarleadtools.document.pdf.jarleadtools.document.raster.jarleadtools.document.writer.jarleadtools.imageprocessing.core.jarleadtools.pdf.jarleadtools.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 (){ArrayListdocuments =新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文件。
私人静态无效(ArrayListdocuments, 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类。