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