|
@@ -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")) {
|