diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml
index 3d98243..c7b27f0 100644
--- a/casic-metering-service/pom.xml
+++ b/casic-metering-service/pom.xml
@@ -48,6 +48,12 @@
com.deepoove
poi-tl
1.10.0
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+
diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml
index 3d98243..c7b27f0 100644
--- a/casic-metering-service/pom.xml
+++ b/casic-metering-service/pom.xml
@@ -48,6 +48,12 @@
com.deepoove
poi-tl
1.10.0
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
index a510c41..f4f5e4c 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
@@ -161,7 +161,9 @@
}
- //证书报告有一部分海口或者西昌的固定数据,例如海口/西昌标志,电话邮箱等地址
+ /**
+ * 创建原始记录文件
+ */
private String createOriginalFile(BizBusinessDeviceMeasureApproval measureItemInfo) {
try {
semaphore.acquire();
@@ -190,7 +192,9 @@
}
}
- //检查是否能生成证书
+ /**
+ * 检查是否能生成证书
+ */
private Boolean checkOutUnablePrint(BizBusinessDeviceMeasureApproval measureItemInfo) {
//通过检定项名称,获取对应的模块配置列表
if (StringUtils.isNotEmpty(measureItemInfo.getItemCategoryName())) {
diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml
index 3d98243..c7b27f0 100644
--- a/casic-metering-service/pom.xml
+++ b/casic-metering-service/pom.xml
@@ -48,6 +48,12 @@
com.deepoove
poi-tl
1.10.0
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
index a510c41..f4f5e4c 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
@@ -161,7 +161,9 @@
}
- //证书报告有一部分海口或者西昌的固定数据,例如海口/西昌标志,电话邮箱等地址
+ /**
+ * 创建原始记录文件
+ */
private String createOriginalFile(BizBusinessDeviceMeasureApproval measureItemInfo) {
try {
semaphore.acquire();
@@ -190,7 +192,9 @@
}
}
- //检查是否能生成证书
+ /**
+ * 检查是否能生成证书
+ */
private Boolean checkOutUnablePrint(BizBusinessDeviceMeasureApproval measureItemInfo) {
//通过检定项名称,获取对应的模块配置列表
if (StringUtils.isNotEmpty(measureItemInfo.getItemCategoryName())) {
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java
index f619915..138c7cc 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java
@@ -58,6 +58,14 @@
}
+ public static void main(String[] args) {
+ String pdfNewUrl = "D:\\casic\\cut\\temp测试报告_1698197691704.pdf";
+ String stampSealImgUrl = "D:\\casic\\cut\\检验章02_1694585722058.jpeg";
+ String outFilePath = "D:\\casic\\cut\\crossSeal.pdf";
+ wordFullSeam(pdfNewUrl, stampSealImgUrl, outFilePath);
+ }
+
+
/**
* 骑缝章只存在一个章在进行打印
*/
@@ -74,8 +82,8 @@
for (int n = 1; n <= nums; n++) {
PdfContentByte over = stamp.getOverContent(n);//设置在第几页打印印章
Image img = nImage[n - 1];//选择图片
- img.scalePercent(10, 10);
- img.setAbsolutePosition(width - img.getWidth() / 10, height / 2 - img.getHeight() / 20);//控制图片位置
+ img.scalePercent(40, 40);
+ img.setAbsolutePosition(width - img.getWidth() *4/ 10, height / 2 - img.getHeight()*4 / 20);//控制图片位置
over.addImage(img);
}
stamp.close();
@@ -90,7 +98,7 @@
for (int i = 0; i < n; i++) {
BufferedImage img = ImageIO.read(new File(subFileUrls.get(i)));
String[] framges = subFileUrls.get(i).split("\\.");
- ImageIO.write(img, framges[framges.length-1], out);
+ ImageIO.write(img, framges[framges.length - 1], out);
nImage[i] = Image.getInstance(out.toByteArray());
out.flush();
out.reset();
@@ -132,4 +140,5 @@
footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
}
+
}
diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml
index 3d98243..c7b27f0 100644
--- a/casic-metering-service/pom.xml
+++ b/casic-metering-service/pom.xml
@@ -48,6 +48,12 @@
com.deepoove
poi-tl
1.10.0
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
index a510c41..f4f5e4c 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
@@ -161,7 +161,9 @@
}
- //证书报告有一部分海口或者西昌的固定数据,例如海口/西昌标志,电话邮箱等地址
+ /**
+ * 创建原始记录文件
+ */
private String createOriginalFile(BizBusinessDeviceMeasureApproval measureItemInfo) {
try {
semaphore.acquire();
@@ -190,7 +192,9 @@
}
}
- //检查是否能生成证书
+ /**
+ * 检查是否能生成证书
+ */
private Boolean checkOutUnablePrint(BizBusinessDeviceMeasureApproval measureItemInfo) {
//通过检定项名称,获取对应的模块配置列表
if (StringUtils.isNotEmpty(measureItemInfo.getItemCategoryName())) {
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java
index f619915..138c7cc 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java
@@ -58,6 +58,14 @@
}
+ public static void main(String[] args) {
+ String pdfNewUrl = "D:\\casic\\cut\\temp测试报告_1698197691704.pdf";
+ String stampSealImgUrl = "D:\\casic\\cut\\检验章02_1694585722058.jpeg";
+ String outFilePath = "D:\\casic\\cut\\crossSeal.pdf";
+ wordFullSeam(pdfNewUrl, stampSealImgUrl, outFilePath);
+ }
+
+
/**
* 骑缝章只存在一个章在进行打印
*/
@@ -74,8 +82,8 @@
for (int n = 1; n <= nums; n++) {
PdfContentByte over = stamp.getOverContent(n);//设置在第几页打印印章
Image img = nImage[n - 1];//选择图片
- img.scalePercent(10, 10);
- img.setAbsolutePosition(width - img.getWidth() / 10, height / 2 - img.getHeight() / 20);//控制图片位置
+ img.scalePercent(40, 40);
+ img.setAbsolutePosition(width - img.getWidth() *4/ 10, height / 2 - img.getHeight()*4 / 20);//控制图片位置
over.addImage(img);
}
stamp.close();
@@ -90,7 +98,7 @@
for (int i = 0; i < n; i++) {
BufferedImage img = ImageIO.read(new File(subFileUrls.get(i)));
String[] framges = subFileUrls.get(i).split("\\.");
- ImageIO.write(img, framges[framges.length-1], out);
+ ImageIO.write(img, framges[framges.length - 1], out);
nImage[i] = Image.getInstance(out.toByteArray());
out.flush();
out.reset();
@@ -132,4 +140,5 @@
footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
}
+
}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java
index 58d0685..4eeddeb 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java
@@ -1,14 +1,20 @@
package com.casic.missiles.service.listeners.register;
import com.casic.missiles.dto.certificate.ElectronicImage;
-import com.casic.missiles.dto.certificate.FilePrintRegister;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.config.ConfigureBuilder;
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
-import com.spire.doc.Section;
import com.spire.doc.documents.TextSelection;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.fields.TextRange;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -66,8 +72,8 @@
params.put("degree", "博士");
params.put("test", "\uF052");
params.put("error", "\uF0A3");
-// String newOldUrl = FilePrintRegisterUtils.exportWord(wordOldUrl, localPathUrl, "temp.docx", params, null);
-// System.out.println(newOldUrl);
+// String newOldUrl = FilePrintRegisterUtils.exportWord(wordOldUrl, localPathUrl, "temp.docx", params, null);
+// System.out.println(newOldUrl);
}
/**
@@ -76,43 +82,55 @@
public static void populateTableNest() {
String localPathUrl = "D:\\casic\\cut\\";
// 目标文件地址
- String wordOldUrl = localPathUrl + "211.docx";
+ String wordOldUrl = "204.docx";
+ List woldUrlList = new ArrayList<>();
+ woldUrlList.add(wordOldUrl);
Map params = new HashMap<>();
- List
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
index a510c41..f4f5e4c 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BizBusinessDeviceMeasureApprovalServiceImpl.java
@@ -161,7 +161,9 @@
}
- //证书报告有一部分海口或者西昌的固定数据,例如海口/西昌标志,电话邮箱等地址
+ /**
+ * 创建原始记录文件
+ */
private String createOriginalFile(BizBusinessDeviceMeasureApproval measureItemInfo) {
try {
semaphore.acquire();
@@ -190,7 +192,9 @@
}
}
- //检查是否能生成证书
+ /**
+ * 检查是否能生成证书
+ */
private Boolean checkOutUnablePrint(BizBusinessDeviceMeasureApproval measureItemInfo) {
//通过检定项名称,获取对应的模块配置列表
if (StringUtils.isNotEmpty(measureItemInfo.getItemCategoryName())) {
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java
index f619915..138c7cc 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/DocPictureProvider.java
@@ -58,6 +58,14 @@
}
+ public static void main(String[] args) {
+ String pdfNewUrl = "D:\\casic\\cut\\temp测试报告_1698197691704.pdf";
+ String stampSealImgUrl = "D:\\casic\\cut\\检验章02_1694585722058.jpeg";
+ String outFilePath = "D:\\casic\\cut\\crossSeal.pdf";
+ wordFullSeam(pdfNewUrl, stampSealImgUrl, outFilePath);
+ }
+
+
/**
* 骑缝章只存在一个章在进行打印
*/
@@ -74,8 +82,8 @@
for (int n = 1; n <= nums; n++) {
PdfContentByte over = stamp.getOverContent(n);//设置在第几页打印印章
Image img = nImage[n - 1];//选择图片
- img.scalePercent(10, 10);
- img.setAbsolutePosition(width - img.getWidth() / 10, height / 2 - img.getHeight() / 20);//控制图片位置
+ img.scalePercent(40, 40);
+ img.setAbsolutePosition(width - img.getWidth() *4/ 10, height / 2 - img.getHeight()*4 / 20);//控制图片位置
over.addImage(img);
}
stamp.close();
@@ -90,7 +98,7 @@
for (int i = 0; i < n; i++) {
BufferedImage img = ImageIO.read(new File(subFileUrls.get(i)));
String[] framges = subFileUrls.get(i).split("\\.");
- ImageIO.write(img, framges[framges.length-1], out);
+ ImageIO.write(img, framges[framges.length - 1], out);
nImage[i] = Image.getInstance(out.toByteArray());
out.flush();
out.reset();
@@ -132,4 +140,5 @@
footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
}
+
}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java
index 58d0685..4eeddeb 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java
@@ -1,14 +1,20 @@
package com.casic.missiles.service.listeners.register;
import com.casic.missiles.dto.certificate.ElectronicImage;
-import com.casic.missiles.dto.certificate.FilePrintRegister;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.config.ConfigureBuilder;
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
-import com.spire.doc.Section;
import com.spire.doc.documents.TextSelection;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.fields.TextRange;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -66,8 +72,8 @@
params.put("degree", "博士");
params.put("test", "\uF052");
params.put("error", "\uF0A3");
-// String newOldUrl = FilePrintRegisterUtils.exportWord(wordOldUrl, localPathUrl, "temp.docx", params, null);
-// System.out.println(newOldUrl);
+// String newOldUrl = FilePrintRegisterUtils.exportWord(wordOldUrl, localPathUrl, "temp.docx", params, null);
+// System.out.println(newOldUrl);
}
/**
@@ -76,43 +82,55 @@
public static void populateTableNest() {
String localPathUrl = "D:\\casic\\cut\\";
// 目标文件地址
- String wordOldUrl = localPathUrl + "211.docx";
+ String wordOldUrl = "204.docx";
+ List woldUrlList = new ArrayList<>();
+ woldUrlList.add(wordOldUrl);
Map params = new HashMap<>();
- List> assetList = new ArrayList<>();
- for (int i = 0; i < 8; i++) {
- Map assetMap = new HashMap<>();
- assetMap.put("seq", String.valueOf(i / 4));
- assetMap.put("customer", "供方" + String.valueOf(i / 4));
- assetMap.put("customerName", "供方名字" + i);
- assetMap.put("model", "型号" + i);
- assetMap.put("proposeTime", "启用时间" + i);
- assetMap.put("score", "维修时间");
- assetMap.put("status", "我醉");
- assetMap.put("evaluate", "我醒");
- assetList.add(assetMap);
- }
- params.put("xCustomerListOne", assetList);
- params.put("hCustomerListOne", assetList);
- params.put("createUserName", "张三");
- params.put("xTotalScore", "20");
- params.put("xAverageScore", "10");
- params.put("hTotalScore", "20");
- params.put("hAverageScore", "10");
- params.put("customerName", "张三");
- params.put("customerNo", "CZ078129");
- params.put("createTime", "2023-10-10");
- params.put("conclusion", "你的结论是什么");
- params.put("customerAdviceHandle", "用户处理的意见");
- params.put("customerAdvice", "我认为该客户无价");
- params.put("test", "\uF052");
- params.put("error", "\uF0A3");
-// String newOldUrl = FilePrintRegisterUtils.exportWord(wordOldUrl, localPathUrl, "temp.docx", params, null);
-// System.out.println(newOldUrl);
+// List> assetList = new ArrayList<>();
+// for (int i = 0; i < 8; i++) {
+// Map assetMap = new HashMap<>();
+// assetMap.put("seq", String.valueOf(i / 4));
+// assetMap.put("customer", "供方" + String.valueOf(i / 4));
+// assetMap.put("customerName", "供方名字" + i);
+// assetMap.put("model", "型号" + i);
+// assetMap.put("proposeTime", "启用时间" + i);
+// assetMap.put("score", "维修时间");
+// assetMap.put("status", "我醉");
+// assetMap.put("evaluate", "我醒");
+// assetList.add(assetMap);
+// }
+//// params.put("xCustomerListOne", assetList);
+// params.put("hCustomerListOne", assetList);
+// params.put("createUserName", "张三");
+// params.put("xTotalScore", "20");
+// params.put("xAverageScore", "10");
+// params.put("hTotalScore", "20");
+// params.put("hAverageScore", "10");
+// params.put("customerName", "张三");
+// params.put("customerNo", "CZ078129");
+// params.put("createTime", "2023-10-10");
+// params.put("conclusion", "你的结论是什么");
+// params.put("customerAdviceHandle", "用户处理的意见");
+// params.put("customerAdvice", "我认为该客户无价");
+// params.put("test", "\uF052");
+ params.put("box", "203");
+ String newOldUrl = FilePrintRegisterUtils.exportWord(localPathUrl, woldUrlList, params, null);
+ System.out.println(newOldUrl);
+ }
+
+ private static void textBoxTest() throws IOException {
+ Map map = new HashMap<>();
+// map.put("box", "一直大胖娇");
+ ConfigureBuilder builder = Configure.builder();
+ XWPFTemplate compile = XWPFTemplate.compile("D:\\casic\\cut\\204.docx",builder.build());
+ compile.render(map);
+ compile.writeToFile("D:\\casic\\cut\\out_test3.docx");
}
public static void main(String[] args) throws Exception {
//内嵌表信息
- Example.mergeDoc();
+// Example.populateTableNest();
+ textBoxTest();
}
/**
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java
index 8268aed..8c925d0 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/FilePrintRegisterUtils.java
@@ -1,6 +1,5 @@
package com.casic.missiles.service.listeners.register;
-import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -8,6 +7,9 @@
import com.casic.missiles.dto.certificate.FilePrintRegister;
import com.casic.missiles.model.file.ImageConfig;
import com.casic.missiles.service.listeners.util.ParseWord07;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.config.ConfigureBuilder;
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.DocPicture;
@@ -86,7 +88,7 @@
String pdfNewUrl = filePrintRegister.getFileNames().get(0).replaceAll("docx", "pdf");
String tempPdfUrl = filePrintRegister.getTemDir() + "temp" + pdfNewUrl;
FilePrintRegisterUtils.wordToPdf(wordOldUrl, tempPdfUrl);
- DocPictureProvider.wordFullSeam(tempPdfUrl, selectSeal.getElectronicSealImageUrl(), pdfNewUrl);
+ DocPictureProvider.wordFullSeam(tempPdfUrl, selectSeal.getElectronicSealImageUrl(), filePrintRegister.getTemDir() + pdfNewUrl);
return pdfNewUrl;
}
return wordOldUrl;
@@ -391,6 +393,14 @@
fos = new FileOutputStream(tmpPath);
doc.write(fos);
fos.flush();
+
+ //增加对固定文本框的处理
+ ConfigureBuilder builder = Configure.builder();
+ XWPFTemplate compile = XWPFTemplate.compile(temDir + fileName, builder.build());
+ compile.render(params);
+ fileName = "temp" + fileName;
+ tmpPath = temDir + fileName;
+ compile.writeToFile(tmpPath);
} catch (Exception e) {
e.printStackTrace();
} finally {