Browse Source

fix: 水印测试

chenjianhua 4 months ago
parent
commit
080c8c1fe6
1 changed files with 30 additions and 20 deletions
  1. 30 20
      service-deploy/src/test/java/com/simuwang/ApplicationTest.java

+ 30 - 20
service-deploy/src/test/java/com/simuwang/ApplicationTest.java

@@ -3,12 +3,17 @@ package com.simuwang;
 import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.date.DateUtil;
 import com.itextpdf.text.Image;
+import com.itextpdf.text.pdf.PdfCopy;
+import com.itextpdf.text.pdf.PdfReader;
 import com.itextpdf.text.pdf.PdfWriter;
 import com.simuwang.base.common.conts.DateConst;
 import com.simuwang.base.pojo.dto.MailboxInfoDTO;
 import com.simuwang.daq.service.EmailParseApiService;
 import com.simuwang.daq.service.EmailParseService;
-import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.pdmodel.*;
+import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
 import org.apache.pdfbox.rendering.ImageType;
 import org.apache.pdfbox.rendering.PDFRenderer;
 import org.jasypt.util.text.BasicTextEncryptor;
@@ -140,26 +145,31 @@ public class ApplicationTest {
     }
 
     private void pdfToImage(String filePath) throws IOException {
-        File file = new File(filePath);
-        PDDocument doc = Loader.loadPDF(file);
-        PDFRenderer renderer = new PDFRenderer(doc);
-        int pageCount = doc.getNumberOfPages();
-        BufferedImage merge = null;
-        int curY = 0;
-        for (int i = 0; i < pageCount; i++) {
-            try {
-                BufferedImage image = renderer.renderImage(i, 2, ImageType.RGB);
-                ImageIO.write(image, "png", new File("D:/pdf/pdfToImage/" + i + ".png"));
-//                BufferedImage bufferedImage = renderer.renderImage(i, 2, ImageType.RGB);
-//                if (Objects.isNull(merge)) {
-//                    merge = new BufferedImage(bufferedImage.getWidth(), bufferedImage.getHeight() * i, BufferedImage.TYPE_INT_ARGB);
-//                }
-//                merge.getGraphics().drawImage(bufferedImage, 0, curY, null);
-//                curY += bufferedImage.getHeight();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
+//        File file = new File(filePath);
+//        PDDocument doc = Loader.loadPDF(file);
+//        PDFRenderer renderer = new PDFRenderer(doc);
+//        int pageCount = doc.getNumberOfPages();
+//        BufferedImage merge = null;
+//        int curY = 0;
+//        for (int i = 0; i < pageCount; i++) {
+//            try {
+//                BufferedImage image = renderer.renderImage(i, 2, ImageType.RGB);
+//                ImageIO.write(image, "png", new File("D:/pdf/pdfToImage/" + i + ".png"));
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//        }
+        PDDocument doc = Loader.loadPDF(new File(filePath));
+        PDPageTree pages = doc.getPages();
+        int i = 0;
+        for (PDPage page : pages) {
+            PDResources resources = page.getResources();
+            COSDictionary dic = resources.getCOSObject().getCOSDictionary(COSName.XOBJECT);
+            dic.removeItem(COSName.getPDFName("华泰证券 严禁篡改伪造"));
         }
+        doc.save(new File("D:/pdf/pdfToImage/无水印.pdf"));
+        // The #close() method must be called once the document is no longer needed.
+        doc.close();
     }
     /**
      * 得到文件名称