From 1dd74654647974f8faa7d96463126d517eca0140 Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期五, 04 八月 2023 15:53:55 +0800
Subject: [PATCH] 打印流程意见时将 用户签名输出到意见框右下角 修复打印时一些临时文件未删除感觉

---
 src/main/java/com/product/print/util/DynamicTableRenderPolicy.java |   28 +++++++++++++++++++++++++++-
 src/main/java/com/product/print/service/PrintRealizeService.java   |    6 ++++--
 2 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/product/print/service/PrintRealizeService.java b/src/main/java/com/product/print/service/PrintRealizeService.java
index 2a9fb63..5426ec5 100644
--- a/src/main/java/com/product/print/service/PrintRealizeService.java
+++ b/src/main/java/com/product/print/service/PrintRealizeService.java
@@ -146,8 +146,10 @@
 			e.printStackTrace();
 			throw new BaseException(CmnCode.PRINT_CONTENT_FAIL, e);
 		} finally {
-			//鍒犻櫎pdf涓存椂鏂囦欢
-			FileUtil.del(tempPdfFilePath);
+			File file = new File(tempPdfFilePath);
+			String absolutePath = file.getAbsolutePath();
+			System.out.println(absolutePath);
+			file.delete();
 		}
 
 	}
diff --git a/src/main/java/com/product/print/util/DynamicTableRenderPolicy.java b/src/main/java/com/product/print/util/DynamicTableRenderPolicy.java
index b7f20e3..731c237 100644
--- a/src/main/java/com/product/print/util/DynamicTableRenderPolicy.java
+++ b/src/main/java/com/product/print/util/DynamicTableRenderPolicy.java
@@ -1,5 +1,6 @@
 package com.product.print.util;
 
+import cn.hutool.core.io.IoUtil;
 import com.deepoove.poi.exception.RenderException;
 import com.deepoove.poi.render.RenderContext;
 import com.deepoove.poi.template.run.RunTemplate;
@@ -8,13 +9,18 @@
 import com.product.core.exception.BaseException;
 import com.product.print.config.CmnCode;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.util.Units;
 import org.apache.poi.xwpf.usermodel.*;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalAlignRun;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.math.BigInteger;
 import java.util.ArrayList;
+import java.util.Base64;
 import java.util.List;
 import java.util.Map;
 import java.util.regex.Matcher;
@@ -152,7 +158,7 @@
 				//鍒犻櫎鍗曞厓鏍间腑鐨勬棫鍐呭
 				if (!StringUtils.isEmpty(text)) {
 					List<XWPFParagraph> paragraphs = cell.getParagraphs();
-					if(paragraphs.size()>1){
+					if (paragraphs.size() > 1) {
 						cell.removeParagraph(1);
 					}
 					List<XWPFRun> runs = paragraphs.get(0).getRuns();
@@ -162,6 +168,26 @@
 					}
 				}
 				cell.setText(value.toString());
+				if ("lx_flow_opinion".equals(this.replaceKey) && "opinion".equals(fieldNames[j]) && !StringUtils.isEmpty(map.get("sign_attachment_uuid"))) {
+					//鎰忚妗� 鎻掑叆绛惧悕鍥剧墖鍒板崟鍏冩牸鍙充笅瑙掍綅缃�
+					XWPFParagraph xwpfParagraph = cell.addParagraph();
+					xwpfParagraph.setAlignment(ParagraphAlignment.RIGHT);
+					XWPFRun run = xwpfParagraph.createRun();
+					String signAttachmentBase64 = map.get("sign_attachment_uuid").toString();
+					//灏哹ase64杞崲瀛楄妭娴�
+					byte[] bytes = Base64.getDecoder().decode(signAttachmentBase64.split(",")[1]);
+					//灏嗗瓧鑺傛祦杞崲涓鸿緭鍏ユ祦
+					InputStream inputStream = new ByteArrayInputStream(bytes);
+					try {
+						//鎹㈣鎻掑叆鍥剧墖
+						run.addPicture(inputStream, XWPFDocument.PICTURE_TYPE_PNG, "sign.png", Units.toEMU(50), Units.toEMU(20));
+						inputStream.close();
+					} catch (InvalidFormatException e) {
+						e.printStackTrace();
+					} catch (IOException e) {
+						e.printStackTrace();
+					}
+				}
 
 			}
 		}

--
Gitblit v1.9.2