问题描述
Maven 依赖
<dependency>
<groupId>de.phip1611</groupId>
<artifactId>docx4j-search-and-replace-util</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>6.1.2</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
我的代码如下所示。
WordprocessingMLPackage sourceDocxDoc = WordprocessingMLPackage.load(fileInputStream) ;
ByteArrayOutputStream out = new ByteArrayOutputStream();
HashMap<String,String> replace = new HashMap<String,String>();
replace.put("$Tag1","My Db Data");
.
.
.
.
.
.
Docx4JSRUtil.searchAndReplace(sourceDocxDoc,replace);
sourceDocxDoc.save(out);
程序在本地环境中成功运行,但有时在生产环境中出现异常,根据行 sourceDocxDoc.save(out); 上的附加图像;
我无法在本地环境中调试它,所以其他人在使用 Docx4j lib 替换包含标识符的 MS Word 文件时遇到了这个问题。
Java 专家热情回应........
解决方法
问题由我自己解决
而不是使用下面的 maven 依赖
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>6.1.2</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
我改为下面的 maven 依赖,它可以工作。
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
<version>8.1.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-core</artifactId>
<version>8.1.0</version>
<scope>compile</scope>
</dependency>