diff --git a/yxt-common/yxt-common-base/pom.xml b/yxt-common/yxt-common-base/pom.xml index ff5d339..32ddefe 100644 --- a/yxt-common/yxt-common-base/pom.xml +++ b/yxt-common/yxt-common-base/pom.xml @@ -120,12 +120,6 @@ javase 3.3.2 - - - com.itextpdf - itextpdf - 5.4.3 - org.apache.httpcomponents httpclient @@ -165,17 +159,11 @@ hutool-all ${hutool.version} - org.freemarker freemarker 2.3.29 - - com.jacob - jacob - 1.18 - javax.xml.bind jaxb-api @@ -196,6 +184,25 @@ activation 1.1.1 + + com.jacob + jacob + 1.18 + + + com.itextpdf + itextpdf + 5.5.11 + + + com.itextpdf + itext-asian + 5.2.0 + + + org.apache.pdfbox + pdfbox + diff --git a/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordConvertUtils.java b/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordConvertUtils.java index ca7dcfc..2de10d2 100644 --- a/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordConvertUtils.java +++ b/yxt-common/yxt-common-base/src/main/java/com/yxt/common/base/utils/WordConvertUtils.java @@ -10,8 +10,11 @@ import com.jacob.com.Dispatch; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.Version; +import org.apache.pdfbox.io.MemoryUsageSetting; +import org.apache.pdfbox.multipdf.PDFMergerUtility; import java.io.*; +import java.util.List; import java.util.Map; /** @@ -205,4 +208,28 @@ public class WordConvertUtils { return false; } } + + /** + * pdf合并 + * + * @param files 源文件的相对路径 例:["D:\anrui\upload\template\pdf\111.pdf","D:\anrui\upload\template\222.pdf"] + * @param targetPath 输出的pdf的路径 D:\anrui\upload\template\pdf\333.pdf + * @return + * @throws Exception + */ + public static File mulFile2One(List files, String targetPath) throws Exception { + PDFMergerUtility mergePdf = new PDFMergerUtility(); + for (File f : files) { + if (f.exists() && f.isFile()) { + // 循环添加要合并的pdf + mergePdf.addSource(f); + } + } + // 设置合并生成pdf文件名称 + mergePdf.setDestinationFileName(targetPath); + // 合并pdf + mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly()); + //ToDo:根据需求实现是否要删除源文件 + return new File(targetPath); + } } diff --git a/yxt-parent/pom.xml b/yxt-parent/pom.xml index 58a8876..eeabf10 100644 --- a/yxt-parent/pom.xml +++ b/yxt-parent/pom.xml @@ -77,6 +77,8 @@ 4.1.2 6.5.0 + 2.0.25 + @@ -401,56 +403,62 @@ + + org.apache.pdfbox + pdfbox + ${pdfbox.version} + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nexus-releases - http://nexus3.yyundong.com/repository/yxt-mvn-releases/ - - - nexus-snapshots - http://nexus3.yyundong.com/repository/yxt-mvn-snapshot/ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nexus-releases + http://nexus3.yyundong.com/repository/yxt-mvn-releases/ + + + nexus-snapshots + http://nexus3.yyundong.com/repository/yxt-mvn-snapshot/ + + \ No newline at end of file