此方法仅能将多个PDF合并成为一个PDF, 无法改变内容, 合并后的效果如图
这个是把两个物流面单合并成了一个
先引入依赖
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.28</version>
</dependency>
/**
* 合并pdf
* @param pdfs pdf字节数组集合
* @return 合并后的字节数组
*/
public static byte[] pdfMerge(List<byte[]> pdfs) throws IOException {
PDFMergerUtility merger = new PDFMergerUtility();
try (
ByteArrayOutputStream mergedPdfStream = new ByteArrayOutputStream()
) {
for (byte[] pdf : pdfs) {
try (
InputStream inputStream = new ByteArrayInputStream(pdf)
) {
merger.addSource(inputStream);
}
}
// 合并pdf
merger.setDestinationStream(mergedPdfStream);
// 内存使用模式: 使用主内存 如果合并pdf过大可以使用磁盘
merger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
// 转换为byte数组
return mergedPdfStream.toByteArray();
}
}