From 15e55bd12be288980fa8e94c19be8d36d7199225 Mon Sep 17 00:00:00 2001 From: yanghuanglin Date: Thu, 13 Nov 2025 17:20:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81=E5=8F=98?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- document-test/pom.xml | 37 +++--------------- .../document/test/bean/DocumentConverter.java | 5 +++ .../test/config/DocumentServiceConfig.java | 2 +- .../src/main/resources/application.yml | 4 +- document-test/src/main/resources/test.docx | Bin 0 -> 10501 bytes 5 files changed, 14 insertions(+), 34 deletions(-) create mode 100644 document-test/src/main/resources/test.docx diff --git a/document-test/pom.xml b/document-test/pom.xml index 9e21255..898bb9e 100644 --- a/document-test/pom.xml +++ b/document-test/pom.xml @@ -19,6 +19,11 @@ document-api 2.0.0 + + com.deepoove + poi-tl + 1.12.2 + @@ -38,38 +43,8 @@ org.projectlombok lombok - 1.16.20 + 1.18.38 provided - - - - - org.apache.maven.plugins - maven-resources-plugin - 3.3.1 - - - copy-resources - process-resources - - copy-resources - - - ${project.build.directory} - - - src/main/resources - - application.yml - - - - - - - - - diff --git a/document-test/src/main/java/com/optima/document/test/bean/DocumentConverter.java b/document-test/src/main/java/com/optima/document/test/bean/DocumentConverter.java index 933412f..7fe254d 100644 --- a/document-test/src/main/java/com/optima/document/test/bean/DocumentConverter.java +++ b/document-test/src/main/java/com/optima/document/test/bean/DocumentConverter.java @@ -1,5 +1,6 @@ package com.optima.document.test.bean; +import com.deepoove.poi.data.Pictures; import com.optima.document.api.DocumentService; import com.optima.document.test.config.DocumentServiceConfig; import org.springframework.stereotype.Component; @@ -10,6 +11,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -42,6 +44,9 @@ public class DocumentConverter { departmentList.add("处置部门2"); params.put("departmentList", departmentList); + byte[] bytes = Files.readAllBytes(Paths.get("/Users/yanghuanglin/Downloads/02.png")); + params.put("img", Pictures.ofBytes(bytes).size(48, 27).create()); + // 生成word,并转为pdf byte[] generatedWord = documentService.generateWord(Files.readAllBytes(sourceFile.toPath()), params); byte[] wordedToPdf = documentService.wordToPdf(generatedWord, true); diff --git a/document-test/src/main/java/com/optima/document/test/config/DocumentServiceConfig.java b/document-test/src/main/java/com/optima/document/test/config/DocumentServiceConfig.java index b793210..dd456c7 100644 --- a/document-test/src/main/java/com/optima/document/test/config/DocumentServiceConfig.java +++ b/document-test/src/main/java/com/optima/document/test/config/DocumentServiceConfig.java @@ -8,7 +8,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean; - @Getter @Setter @Configuration @@ -23,6 +22,7 @@ public class DocumentServiceConfig { public DocumentService documentService() { // 创建客户端代理 HttpInvokerProxyFactoryBean factoryBean = new HttpInvokerProxyFactoryBean(); + String serviceUrl; if (server.endsWith("/")) { serviceUrl = server + "document-service"; diff --git a/document-test/src/main/resources/application.yml b/document-test/src/main/resources/application.yml index 231e1b9..e1c9e8d 100644 --- a/document-test/src/main/resources/application.yml +++ b/document-test/src/main/resources/application.yml @@ -1,4 +1,4 @@ document: server: http://127.0.0.1:9004 - source-file: /Users/yanghuanglin/Downloads/test.docx - target-file: /Users/yanghuanglin/Downloads/test.pdf + source-file: "/Volumes/Working/Works/Git Sources/document/document-test/src/main/resources/test.docx" + target-file: "/Users/yanghuanglin/Downloads/test.pdf" diff --git a/document-test/src/main/resources/test.docx b/document-test/src/main/resources/test.docx new file mode 100644 index 0000000000000000000000000000000000000000..aa68d62ab057ca814625ce61bf1c662d5996f460 GIT binary patch literal 10501 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