From a6ae7c44fccca62e535c763aae0e599d2f3f73b0 Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期三, 29 五月 2024 14:27:53 +0800 Subject: [PATCH] 增加通过多个base64PDF合并为一个 --- ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-) diff --git a/ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java b/ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java index ee3d5a4..7bef253 100644 --- a/ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java +++ b/ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java @@ -7,9 +7,11 @@ import com.google.zxing.common.BitMatrix; import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; +import org.apache.commons.codec.binary.Base64; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.HashMap; @@ -294,4 +296,29 @@ document.close(); return (ByteArrayOutputStream) map.get("stream"); } + + /** + * 灏嗗涓猙ase64pdf鍚堝苟涓轰竴涓� + * @param base64PdfList pdf闆嗗悎 + * @return + */ + public static byte[] mergePDFs(List<String > base64PdfList) throws DocumentException, IOException { + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + Document document = new Document(); + PdfCopy copy = new PdfCopy(document, byteArrayOutputStream); + document.open(); + for (String base64Pdf : base64PdfList) { + byte[] pdfBytes = Base64.decodeBase64(base64Pdf); + PdfReader reader = new PdfReader(new ByteArrayInputStream(pdfBytes)); + int numberOfPages = reader.getNumberOfPages(); + for (int i = 1; i <= numberOfPages; i++) { + document.newPage(); + PdfImportedPage page = copy.getImportedPage(reader, i); + copy.addPage(page); + } + reader.close(); + } + document.close(); + return byteArrayOutputStream.toByteArray(); + } } -- Gitblit v1.8.0