所需依赖
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc.free</artifactId>
<version>3.9.0</version>
</dependency>
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
测试代码
public static void main(String[] args) {
Document document =new Document();
document.loadFromFile("C:\\Users\\11949\\Desktop\\工作票3.docx");
document.saveToFile("C:\\Users\\11949\\Desktop\\工作票3.pdf", FileFormat.PDF);
}
实际使用
@GetMapping(value = "/exportWordTestPDFUrl")
public R<?> exportWordTestUrl(@RequestParam Map<String , Object> mapCon , HttpServletResponse response ) throws Exception {
R resultBody = replaceWordDataService.replaceWord( mapCon );
if(resultBody.getCode() == 0 ){
byte[] array = null;
ExportWordDTO data = (ExportWordDTO) resultBody.getData();
XWPFTemplate template = data.getXwpfTemplate();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
template.writeAndClose( baos );//文档写入流
array = baos.toByteArray();
baos.close();
template.close();
// 替换后的word转流
InputStream inputStream = new ByteArrayInputStream( array ) ;
Document document =new Document();
document.loadFromStream(inputStream,FileFormat.Docx_2013);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
document.saveToStream(outputStream, FileFormat.PDF);
byte[] pdfArray = null;
pdfArray = outputStream.toByteArray();
outputStream.close();
R<ResultFileModel> upload =
remoteFileService.upload(pdfArray, 1, applicationName, data.getOutFileName()+".pdf");
if (null != upload && upload.getCode() == 0){
// 将url 返回前端
ResultFileModel fileModel = upload.getData();
String path = fileModel.getAddress() + fileModel.getPath();
return R.ok().data( path );
}else {
return R.fail().msg( "文件上传失败!" );
}
}
return R.fail().msg(resultBody.getMsg());
}