pom.xml
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-local</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-transformer-msoffice-word</artifactId>
<version>1.0.3</version>
</dependency>
代码:这是是通过minio服务器将文件下载后再转换,返回给前端base64
public String wordTopdf(String bucketName, String objectName) throws Exception {
MinioClient minioClient = (MinioClient)this.container.get("defaultClient");
InputStream input = minioClient.getObject(bucketName, objectName);
// 创建临时文件来保存PDF
File tempFile = File.createTempFile("temp_pdf", ".pdf");
FileOutputStream fileOutputStream = new FileOutputStream(tempFile);
IConverter converter = LocalConverter.builder().build();
converter.convert(input)
.as(DocumentType.DOCX)
.to(fileOutputStream)
.as(DocumentType.PDF).execute();
// PdfConverter.getInstance().convert(xwpfDocument, fileOutputStream, pdfOptions);
// 将PDF文件转换为Base64编码
byte[] pdfBytes = Files.readAllBytes(tempFile.toPath());
String base64PDF = Base64.getEncoder().encodeToString(pdfBytes);
converter.shutDown();
input.close();
fileOutputStream.close();
return base64PDF;
}