Apache PDFBox
Apache PDFBox是一个开源 Java 库,支持 PDF 文档的开发和转换。使用这个库,您可以开发创建、转换和操作 PDF 文档的 Java 程序。
Split & Merge :使用 PDFBox,您可以将单个 PDF 文件分成多个文件,并将它们合并为单个文件。
案例:把多个pdf转换成一个pdf
1.导包
<!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.17</version>
</dependency>
2.转换工具类
import java.io.IOException;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.pdfbox.io.MemoryUsageSetting;
import org.apache.pdfbox.multipdf.PDFMergerUtility;
public class PdfFileUtil {
/**
* pdf合并拼接
* @param files 文件列表
* @param targetPath 合并到
* @return
*/
public static File mulFileToOne(List<File> files,String targetPath) throws IOException{
// pdf合并工具类
PDFMergerUtility mergePdf = new PDFMergerUtility();
for (File f : files) {
if(f.exists() && f.isFile()){
// 循环添加要合并的pdf
mergePdf.addSource(f);
}
}
// 设置合并生成pdf文件名称
mergePdf.setDestinationFileName(targetPath);
// 合并pdf
mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
//清空files
files.clear();
return new File(targetPath);
}
//测试main方法
public static void main(String[] args) throws IOException {
//创建文件集合
List<File> files = new ArrayList<File>();
//将需要合并的文件添加到集合中
files.add(new File("E:\\fsdownloadtempFile\\1.pdf"));
files.add(new File("E:\\fsdownloadtempFile\\2.pdf"));
files.add(new File("E:\\fsdownloadtempFile\\3.pdf"));
//调用方法传入文件集合和目标文件地址
File f = mulFileToOne(files, "E:\\fsdownload\\total.pdf");
}
}
pdfbox里面还有各种对pdf文档的操作支持。如文字提取,文字修改等。有兴趣的可以去了解一下