本教程演示如何创建一个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.jar
leadtools.document.jar
leadtools.document.writer.jar
leadtools.codecs.jar
leadtools.pdf.jar
leadtools.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
类。