1、随便创建一个springboot项目,在项目pom.xm文件里面引入pdfbox的依赖包。
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.31</version>
</dependency>
2、在项目创建一个含有main函数的类TestCreatPdf ,代码如下。
package com.ruoyi.web.controller.tool;
import com.ruoyi.common.utils.DateUtils;
import org.apache.pdfbox.io.RandomAccessBufferedFileInputStream;
import org.apache.pdfbox.io.RandomAccessRead;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.interactive.action.PDActionJavaScript;
import java.io.File;
import java.io.IOException;
public class TestCreatPdf {
public static void main(String[] args) throws IOException {
//先定义一个脚本
String javaScript = "app.alert('欢迎访问,本pdf含有提示脚本,方便测试');";
//创建一个脚本事件对象
PDActionJavaScript PDAjavascript = new PDActionJavaScript(javaScript);
// -------------------------这段代码是创建PDF start----------------------
//创建一个pdf文档
PDDocument document = new PDDocument();
//创建一个空白页
PDPage blankPage = new PDPage();
//把空白页加入文档里面
document.addPage(blankPage);
//设置角标到pdf文档里面
document.getDocumentCatalog().setOpenAction(PDAjavascript);
//把文档保存到本地(这块需要用管理员权限打开idea编辑工具)
document.save("d:\\含有脚本的.pdf");
System.out.println("①PDF 已经创建");
//关闭document
document.close();
// -------------------------这段代码是创建PDF end----------------------
// -------------------------这段代码指定PDF文件往里加脚本 start----------
//PDF文件加载
PDDocument doc = PDDocument.load(new File("D:\\大文本测试.pdf"));
//设置角标到pdf文档里面
doc.getDocumentCatalog().setOpenAction(PDAjavascript);
//把文档保存到本地(这块需要用管理员权限打开idea编辑工具)
//保存到新的文件里面就改一下文件名。不改就直接加到原文件里面
doc.save("d:\\大文本测试.pdf");
System.out.println("②脚本已经添加到大文本中");
doc.close();
// -------------------------这段代码指定PDF文件往里加脚本 end----------
}
}
3、运行main函数,在D盘中就可以查看到生成的pdf。
4、代开dpf文件就有提示。
------生成的pdf资源:含有脚本的文件点击下载。