本教程演示如何创建一个Java应用程序,该应用程序创建一个新的PDF文档,并将目录中每个PDF的前几页添加到新创建的PDF中。
| 概述 | |
|---|---|
| 总结 | 本教程介绍如何在Java Console应用程序中使用SVG创建新的PDF文档并向其添加页面 |
| 完成时间 | 30分钟 |
| Eclipse项目 | 下载教程项目(3kb) |
| 平台 | Java应用程序 |
| IDE | Eclipse |
| 开发许可 | 下载LEADTOOLS |
| 用另一种语言试试 |
|
来熟悉创建项目的基本步骤添加引用和设置License教程,在工作之前使用文档编写器创建文档- Java教程。
中创建的项目的副本开始添加引用和设置License教程。如果该项目不可用,请按照该教程中的步骤创建该项目。
所需的参考资料取决于项目的目的。引用可以通过本地添加. jar文件位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Java.
对于这个项目,需要以下参考资料:
leadtools.jarleadtools.document.jarleadtools.document.writer.jarleadtools.codecs.jarleadtools.pdf.jarleadtools.svg.jar本教程使用LEADTOOLS文档库支持。有关应用程序需要哪些JAR文件的完整列表,请参阅要包含在Java应用程序中的文件
许可证解锁项目所需的特性。它必须在调用任何工具包函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
请注意
中更详细地介绍了添加LEADTOOLS引用和设置许可证添加引用和设置License教程。
随着项目的创建、引用的添加和许可证的设置,编码就可以开始了。
在Project Explorer,打开_Main.java类。将以下语句添加到进口在顶部阻塞。
//添加到导入块进口. io . *;进口java.nio.file。*;进口java.util。*;进口leadtools。*;进口leadtools.codecs。*;进口leadtools.document.writer。*;
在run ()方法,确保包含以下代码。
公共静态无效main (String [] args)抛出IOException{新_Main () .run (args);}私人无效运行(String [] args) {试一试{Platform.setLibPath (“C: \ \ LEADTOOLS22 \ \ Bin \ \ CDLL \ \ x64”);Platform.loadLibrary (LTLibrary.LEADTOOLS);Platform.loadLibrary (LTLibrary.CODECS);Platform.loadLibrary (LTLibrary.DOCUMENT_WRITER);SetLicense ();CreatePdfDocument ();}抓(异常交货){System.err.println (ex.getMessage ());ex.printStackTrace ();}}
添加一个名为CreatePdfDocument ()并在里面调用它run ()方法后SetLicense ();调用,如上所示。添加下面的代码来创建一个新的PDF文件,并将给定目录中的每个PDF的第一页添加到新的PDF中。
无效CreatePdfDocument (){RasterCodecs编解码器=新RasterCodecs ();字符串dir =“C: \ \ LEADTOOLS22 \ \资源\ \图片”;intpageNumber = 1;String[] pdfFiles = GetFiles(dir,“* . pdf”);DocumentFormat格式= DocumentFormat. pdf;字符串outFile = PathCombine(dir,“DocumentWriters。”+ DocumentWriter.getFormatFileExtension(格式));.getLoad .getRasterizeDocument codecs.getOptions () () () .setResolution (300);DocumentWriter docWriter =新DocumentWriter ();PdfDocumentOptions = (PdfDocumentOptions) docWriter.getOptions(format);pdfOptions.setDocumentType (PdfDocumentType.PDFA);pdfOptions.setImageOverText (真正的);docWriter。setoption(格式,pdfOptions);//开始一个新的PDF文档docWriter.beginDocument(输出文件、格式);//添加页面为(字符串文件:pdfile){DocumentWriterSvgPage页面=新DocumentWriterSvgPage ();page.setSvgDocument(编解码器。pageNumber loadSvg(文件,零));如果(pdfOptions.getImageOverText ()){//如果我们使用图像/文本,那么加载叠加光栅图像page.setImage(编解码器。负载(文件、pageNumber));}//将页面添加到创建的PDF文档中docWriter.addPage(页面);System.out.println (“添加页面”+ pageNumber +“从”+ file.substring (file.lastIndexOf ("\\") + 1, file.lastIndexOf(".")) + "\ n”);//处理资源如果(page.getSvgDocument () ! =零).dispose page.getSvgDocument () ();如果(page.getImage () ! =零).dispose page.getImage () ();}//最终文档到磁盘docWriter.endDocument ();System.out.println ("PDF文档成功保存!");}
添加一个新的GetFiles(字符串路径,字符串搜索模式)方法,该方法将在CreatePdfDocument ()方法如上所示。
字符串[]GetFiles(字符串路径,字符串searchPattern){//拆分searchPattern,如果我们有目录在那里ArrayList <字符串>模式=新ArrayList < > (arrays . aslist (searchPattern.split (“/”)));//从数组中取出最后一个元素,因为这将是文件模式String fileppattern = pattern.remove(pattern.size() - 1);//将基路径插入到剩余的列表中模式。添加(0,路径);//现在让我们concat lot创建一个基路径路径= PathCombine (pattern.toArray (新String [pattern.size ())));最后模式regEx = Pattern.compile(fileppattern .replace)“*”,“。*”) .replace (“?”,“。?”));文件目录=新文件(路径);File[] matchingFiles = directory.listFiles(新FilenameFilter () {@Override公共布尔accept(文件目录,字符串文件名){返回新文件(dir, filename).isFile() && regEx.matcher(filename).matches();}});ArrayList = <字符串>文件新ArrayList < > ();断言matchingFiles ! =零;为(文件文件:matchingFiles) {files.add (file.getAbsolutePath ());}返回files.toArray (新String [files.size ()));}PathCombine字符串(字符串…路径){文件文件=新文件(路径[0]);为(inti = 1;我<路径。长度;我+ +){文件=新文件(文件,路径[我]);}返回file.getPath ();}
通过按运行项目Ctrl +季,或选择运行->运行.
如果正确遵循了这些步骤,应用程序将使用SVG和Document Writers创建一个新的PDF文件,其中包含给定目录中每个PDF文件的第一页。
本教程展示了如何使用Document writer创建文档。此外,还介绍了如何使用DocumentWriter,PdfDocumentOptions,DocumentWriterSvgPage,RasterCodecs类。