今天尝使用docx4j解决word转pdf;
导入依赖:
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-MOXy</artifactId>
<version>8.2.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-export-fo</artifactId>
<version>8.2.0</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
导入后发现之前代码中的response.setCharacterEncoding("utf-8");报红了。之后发现是docx4j-export-fo这个依赖导致之前的代码报红。查找之后发现:
是依赖起冲突导致的;该依赖下的servlet-api的版本是2.2 其中是没有setCharacterEncoding方法的。然后添加下面依赖版本改到2.5后问题就解决了。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
问题就解决了。