diff --git a/document-api/pom.xml b/document-api/pom.xml
index 6c71a4c..462621a 100644
--- a/document-api/pom.xml
+++ b/document-api/pom.xml
@@ -28,14 +28,6 @@
org.apache.maven.plugins
maven-jar-plugin
3.3.0
-
-
-
-
- com.example.MyApp
-
-
-
diff --git a/document-api/src/main/java/com/optima/document/api/BaseDocumentService.java b/document-api/src/main/java/com/optima/document/api/BaseDocumentService.java
deleted file mode 100644
index f7a4de2..0000000
--- a/document-api/src/main/java/com/optima/document/api/BaseDocumentService.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package com.optima.document.api;
-
-import java.util.Map;
-
-/**
- * @author yanghuanglin
- * @since 2022/12/28
- */
-public interface BaseDocumentService {
- /**
- * 格式转换
- *
- * @param source 源文件流,仅支持docx格式
- * @param sourceExtension 源文件后缀名,不包含"."
- * @param targetExtension 目标文件后缀名,不包含"."
- * @return 转换后的文件流
- */
- default byte[] convert(byte[] source, String sourceExtension, String targetExtension) {
- return convert(source, sourceExtension, targetExtension, null);
- }
-
- /**
- * 格式转换
- *
- * @param source 源文件流,仅支持docx格式
- * @param sourceExtension 源文件后缀名,不包含"."
- * @param targetExtension 目标文件后缀名,不包含"."
- * @param targetFormat 目标文件格式,需与目标文件后缀名匹配。
- * server下此参数无效。
- * tl-server下参考:
- * word格式
- * 或 excel格式
- * 或 powerpoint格式
- * @return 转换后的文件流
- */
- default byte[] convert(byte[] source, String sourceExtension, String targetExtension, String targetFormat) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * 通过调用poi生成word
- *
- * @param sourceTemplate word模版流,仅支持docx格式
- * @param dataModel 数据模型
- * @return word文档流
- */
- default byte[] generateWord(byte[] sourceTemplate, Map dataModel) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * word转为pdf
- *
- * @param source word文件流,仅支持docx格式
- * @param sourceFormat 源文件后缀名,不包含".",tl-server下此参数无效
- * @param clear 是否清除占位符,如果为true,则在tl-server下源文件只支持docx格式
- * @return pdf文档流
- */
- default byte[] wordToPdf(byte[] source, String sourceFormat, boolean clear) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * 通过pdfbox将word转图片
- *
- * @param source word文件流,仅支持docx格式
- * @param sourceExtension 源文件后缀名,不包含".",server下此参数无效
- * @param targetExtension 目标格式 支持jpeg, jpg, gif, tiff or png
- * @return 图片流
- */
- default byte[] wordToImage(byte[] source, String sourceExtension, String targetExtension) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * doc转为docx
- *
- * @param source doc文档流
- * @return docx文档流
- */
- default byte[] docToDocx(byte[] source) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * xls转为xlsx
- *
- * @param source xls文档流
- * @return xlsx文档流
- */
- default byte[] xlsToXlsx(byte[] source) {
- throw new UnsupportedOperationException();
- }
-}
diff --git a/document-api/src/main/java/com/optima/document/api/DocumentService.java b/document-api/src/main/java/com/optima/document/api/DocumentService.java
index a86b261..26beaeb 100644
--- a/document-api/src/main/java/com/optima/document/api/DocumentService.java
+++ b/document-api/src/main/java/com/optima/document/api/DocumentService.java
@@ -1,12 +1,43 @@
package com.optima.document.api;
+import java.util.Map;
+
/**
- * 文档接口,此类中用的poi2生成word文档,使用docto进行格式转换
+ * 文档操作接口
*
* @author yanghuanglin
* @since 2022/12/28
*/
-public interface DocumentService extends BaseDocumentService {
+public interface DocumentService {
+ /**
+ * 格式转换
+ *
+ * @param source 源文件流,仅支持docx格式
+ * @param sourceExtension 源文件后缀名,不包含"."
+ * @param targetExtension 目标文件后缀名,不包含"."
+ * @param targetFormat 目标文件格式,需与目标文件后缀名匹配。
+ * jodconverter-document-server 下此参数无效。
+ * docto-document-server 下参考:
+ * word格式
+ * 或 excel格式
+ * 或 powerpoint格式
+ * @return 转换后的文件流
+ */
+ default byte[] convert(byte[] source, String sourceExtension, String targetExtension, String targetFormat) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * 通过调用poi生成word
+ *
+ * @param sourceTemplate word模版流,仅支持docx格式
+ * @param dataModel 数据模型
+ * @return word文档流
+ */
+ default byte[] generateWord(byte[] sourceTemplate, Map dataModel) {
+ throw new UnsupportedOperationException();
+ }
+
/**
* 通过调用poi将word转pdf,如果clear为true,则仅支持docx格式
*
@@ -28,4 +59,24 @@ public interface DocumentService extends BaseDocumentService {
default byte[] wordToImage(byte[] source, String targetExtension) {
throw new UnsupportedOperationException();
}
+
+ /**
+ * doc转为docx
+ *
+ * @param source doc文档流
+ * @return docx文档流
+ */
+ default byte[] docToDocx(byte[] source) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * xls转为xlsx
+ *
+ * @param source xls文档流
+ * @return xlsx文档流
+ */
+ default byte[] xlsToXlsx(byte[] source) {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/document-server/docto-document-server/src/main/java/com/optima/document/server/api/DocumentServiceImpl.java b/document-server/docto-document-server/src/main/java/com/optima/document/server/api/DocumentServiceImpl.java
index c77d154..c6011fa 100644
--- a/document-server/docto-document-server/src/main/java/com/optima/document/server/api/DocumentServiceImpl.java
+++ b/document-server/docto-document-server/src/main/java/com/optima/document/server/api/DocumentServiceImpl.java
@@ -135,10 +135,6 @@ public class DocumentServiceImpl implements DocumentService {
}
}
- public byte[] wordToPdf(byte[] source, String sourceFormat, boolean clear) {
- return wordToPdf(source, clear);
- }
-
public byte[] wordToPdf(byte[] source, boolean clear) {
try {
long start = System.currentTimeMillis();
@@ -185,10 +181,6 @@ public class DocumentServiceImpl implements DocumentService {
return null;
}
- public byte[] wordToImage(byte[] source, String sourceExtension, String targetExtension) {
- return wordToImage(source, targetExtension);
- }
-
public byte[] docToDocx(byte[] source) {
return convert(source, "doc", "docx", "wdFormatDocumentDefault");
}
diff --git a/document-server/jodconverter-document-server/src/main/java/com/optima/document/server/api/DocumentServiceImpl.java b/document-server/jodconverter-document-server/src/main/java/com/optima/document/server/api/DocumentServiceImpl.java
index b1e53c1..615077b 100644
--- a/document-server/jodconverter-document-server/src/main/java/com/optima/document/server/api/DocumentServiceImpl.java
+++ b/document-server/jodconverter-document-server/src/main/java/com/optima/document/server/api/DocumentServiceImpl.java
@@ -91,7 +91,7 @@ public class DocumentServiceImpl implements DocumentService {
* @param targetExtension 目标文件后缀名
* @return 转换后的文件流
*/
- public byte[] convert(byte[] source, String sourceExtension, String targetExtension) {
+ private byte[] convert(byte[] source, String sourceExtension, String targetExtension) {
try {
sourceExtension = sourceExtension.replace(".", "");
targetExtension = targetExtension.replace(".", "");
@@ -131,10 +131,6 @@ public class DocumentServiceImpl implements DocumentService {
}
}
- public byte[] wordToPdf(byte[] source, String sourceFormat, boolean clear) {
- return wordToPdf(source, clear);
- }
-
public byte[] wordToPdf(byte[] source, boolean clear) {
try {
long start = System.currentTimeMillis();
@@ -181,10 +177,6 @@ public class DocumentServiceImpl implements DocumentService {
return null;
}
- public byte[] wordToImage(byte[] source, String sourceExtension, String targetExtension) {
- return wordToImage(source, targetExtension);
- }
-
public byte[] docToDocx(byte[] source) {
return convert(source, "doc", "docx");
}
diff --git a/document-test/pom.xml b/document-test/pom.xml
index e6c0069..9e21255 100644
--- a/document-test/pom.xml
+++ b/document-test/pom.xml
@@ -45,33 +45,28 @@
-
org.apache.maven.plugins
- maven-jar-plugin
- 3.3.0
-
-
-
-
- com.example.MyApp
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.2.1
+ maven-resources-plugin
+ 3.3.1
- attach-sources
- package
+ copy-resources
+ process-resources
- jar-no-fork
+ 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 5c45df5..1a2df90 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
@@ -9,6 +9,9 @@ import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.HashMap;
+import java.util.Map;
@Component
public class DocumentConverter {
@@ -29,10 +32,19 @@ public class DocumentConverter {
targetFile.delete();
}
- String sourceExtension = sourceFile.getName().substring(sourceFile.getName().lastIndexOf("."));
- String targetExtension = targetFile.getName().substring(targetFile.getName().lastIndexOf("."));
+ Map params = new HashMap<>();
+ params.put("callerName", "张三");
- byte[] converted = documentService.convert(Files.readAllBytes(sourceFile.toPath()), sourceExtension, targetExtension);
- Files.write(targetFile.toPath(), converted);
+ // 生成word,并转为pdf
+ byte[] generatedWord = documentService.generateWord(Files.readAllBytes(sourceFile.toPath()), params);
+ byte[] wordedToPdf = documentService.wordToPdf(generatedWord, true);
+ Path pdfPath = targetFile.toPath();
+ Files.write(pdfPath, wordedToPdf);
+
+ // 生成的word转为图片
+ byte[] wordedToImage = documentService.wordToImage(generatedWord, "jpg");
+ File imageFile = new File(targetFile.getAbsolutePath().replace(".pdf", ".jpg"));
+ Path imagePath = imageFile.toPath();
+ Files.write(imagePath, wordedToImage);
}
}