Procházet zdrojové kódy

[task-5558] 文件控制盖红章

xiexh před 3 měsíci
rodič
revize
9389970401

+ 34 - 4
ibps-comp-root/modules/comp-file-server/src/main/java/com/lc/ibps/cloud/file/util/PDFFileUtil.java

@@ -1,26 +1,32 @@
 package com.lc.ibps.cloud.file.util;
 package com.lc.ibps.cloud.file.util;
 
 
 
 
-import com.itextpdf.text.*;
+import com.itextpdf.text.DocumentException;
+import com.itextpdf.text.Element;
 import com.itextpdf.text.Image;
 import com.itextpdf.text.Image;
 import com.itextpdf.text.Rectangle;
 import com.itextpdf.text.Rectangle;
 import com.itextpdf.text.pdf.*;
 import com.itextpdf.text.pdf.*;
-import com.lc.ibps.cloud.provider.GenericProvider;
+import com.lc.ibps.base.core.util.BeanUtils;
+import com.lc.ibps.base.web.context.ContextUtil;
 import org.apache.pdfbox.Loader;
 import org.apache.pdfbox.Loader;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.pdmodel.PDPageContentStream;
 import org.apache.pdfbox.pdmodel.PDPageContentStream;
 import org.apache.pdfbox.pdmodel.common.PDRectangle;
 import org.apache.pdfbox.pdmodel.common.PDRectangle;
 import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
 import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
-import org.apache.pdfbox.util.Matrix;
+import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.map.ObjectMapper;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import sun.misc.BASE64Decoder;
 import sun.misc.BASE64Decoder;
 
 
 import javax.swing.*;
 import javax.swing.*;
 import java.awt.*;
 import java.awt.*;
-import java.io.*;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.util.Base64;
 import java.util.Base64;
+import java.util.Optional;
 
 
 public class PDFFileUtil {
 public class PDFFileUtil {
 
 
@@ -146,6 +152,30 @@ public class PDFFileUtil {
 
 
     public static void stampByPdfbox(byte[] fileBlob, OutputStream outputStream, String action) {
     public static void stampByPdfbox(byte[] fileBlob, OutputStream outputStream, String action) {
         String base64FileData = zuofei; // 默认图章
         String base64FileData = zuofei; // 默认图章
+        String setting = ContextUtil.getSetting();
+        try {
+            ObjectMapper objectMapper = new ObjectMapper();
+            // Map<String, Object> map = objectMapper.readValue(setting, Map.class);
+            JsonNode node = objectMapper.readTree(setting);
+            String controlled_red = Optional.ofNullable(node)
+                    .map(p -> p.get("stampColor"))
+                    .map(c -> c.get("controlled"))
+                    .map(JsonNode::asText)
+                    .orElse("");
+            if(BeanUtils.isNotEmpty(controlled_red)){
+                controlled = controlled_red;
+            }
+            String external_red = Optional.ofNullable(node)
+                    .map(p -> p.get("stampColor"))
+                    .map(c -> c.get("external"))
+                    .map(JsonNode::asText)
+                    .orElse("");
+            if(BeanUtils.isNotEmpty(external_red)){
+                external = external_red;
+            }
+        } catch (Exception e) {
+            logger.error("盖红章获取配置失败", e);
+        }
         if (action.equals("controlled")) {
         if (action.equals("controlled")) {
             base64FileData = controlled;
             base64FileData = controlled;
         } else if (action.equals("external")) {
         } else if (action.equals("external")) {