背景
打算将多个PDF合并称一个PDF方便去打印,使用WPS合并还要会员??????
这么小的功能都不给白嫖,有点不厚道哦
分析
Java做PDF处理的框架那当然是apache开源的PDFBox啦
https://pdfbox.apache.org/
常见的PDF操作功能都有啦
- 提取文本
- 拆分和合并
- 转成图片
- 基于图片或者文字生成PDF
一看官方API文档,一搜索就有一个mergeUtil,方便
编码
引入依赖
<!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.28</version>
</dependency>
使用File遍历文件夹下所有文件,并且合并成一个PDF
public static void main(String[] args) throws IOException {
PDFMergerUtility pdfMerger = new PDFMergerUtility();
File file = new File("D:\\pdf");
for (File listFile : file.listFiles()) {
pdfMerger.addSource(listFile);
}
pdfMerger.setDestinationFileName("D:\\pdf\\merge.pdf");
pdfMerger.mergeDocuments(null);
}