From 57a6735173d59feb6cfd95c9a8ec76d6f87bc578 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期一, 22 四月 2024 12:46:28 +0800 Subject: [PATCH] PDF合并,BUG修改 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/MergeFilesToPDFUtils.java | 38 ++++++++++++++++++++------------------ 1 files changed, 20 insertions(+), 18 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/MergeFilesToPDFUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MergeFilesToPDFUtils.java index fd68236..ac164ca 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/MergeFilesToPDFUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MergeFilesToPDFUtils.java @@ -1,12 +1,14 @@ package com.ruoyi.common.utils; +import com.itextpdf.text.DocumentException; import com.itextpdf.text.Image; -import com.itextpdf.text.pdf.PdfWriter; +import com.itextpdf.text.pdf.*; import com.ruoyi.common.utils.file.FileUtils; import com.spire.doc.Document; import com.spire.doc.FileFormat; import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfDocumentBase; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; @@ -17,8 +19,10 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.util.List; @Configuration +@Slf4j public class MergeFilesToPDFUtils { @Value("${ruoyi.archived}") @@ -80,27 +84,25 @@ return true; } - /** + /** * pdf鍚堝苟 */ - public Boolean mergePDF(String[] pdfFiles, String fileName, HttpServletResponse response) { - try { + public void mergePdfFiles(List<String> pdfFiles, String fileName) throws IOException, DocumentException { + com.itextpdf.text.Document document = new com.itextpdf.text.Document(); + log.info("fileName鐨勫叏璺緞锛歿}", archived + "/" + fileName); + PdfCopy copy = new PdfCopy(document, new FileOutputStream(archived + "/" + fileName)); + document.open(); - - PdfDocumentBase pdf = PdfDocument.mergeFiles(pdfFiles); - //Save the result to a PDF file - - pdf.save(archived + fileName, com.spire.pdf.FileFormat.PDF); - String filePath = archived + fileName; - - response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); - FileUtils.setAttachmentResponseHeader(response, fileName); - FileUtils.writeBytes(filePath, response.getOutputStream()); - } catch (Exception e) { - e.printStackTrace(); - return false; + for (String pdfFile : pdfFiles) { + PdfReader reader = new PdfReader(pdfFile); + int totalPages = reader.getNumberOfPages(); + for (int page = 1; page <= totalPages; page++) { + PdfImportedPage importedPage = copy.getImportedPage(reader, page); + copy.addPage(importedPage); + } + reader.close(); } - return true; + document.close(); } } -- Gitblit v1.9.3