后端调用word转pdf接口
1、build.gradle文件
//word转pdf
implementation('com.documents4j:documents4j-local:1.0.3')
implementation('com.documents4j:documents4j-transformer-msoffice-word:1.0.3')
如果是java代码的话,可以用这篇文章中的代码
使用java实现word转pdf,亲测有效,完美保留样式
包括了依赖和word转pdf。不过这个是直接转文件,如果是你希望转完后,再把输出流转为输入流,这个word转pdf代码,就需要改一下。
2、调用接口,word转pdf
判断格式和改后缀的代码
val isWordDocxDocument = media.originalFilename!!.endsWith(".docx")
val isWordDocDocument = media.originalFilename!!.endsWith(".doc")
fileName = fileName.replace(".docx", ".pdf").replace(".doc", ".pdf")
val fileId = when {
(isWordDocxDocument && type == "SEAL") -> this.wordAttachmentToPdf(media, type, fileName)
(isWordDocDocument && type == "SEAL") -> this.wordAttachmentToPdf(media, type, fileName)
else -> gf.uploadFileByMultipartFile(media, metadata)
}
word转pdf的代码
override fun wordAttachmentToPdf(media: MultipartFile, type: String, fileName: String): String {
val pdfOutputStream = ByteArrayOutputStream()
try {
ByteArrayOutputStream().use { outputStream ->
val converter = LocalConverter.builder().build()
converter.convert(media.inputStream)
.`as`(DOCX)
.to(outputStream)
.`as`(PDF)
.execute()
pdfOutputStream.write(outputStream.toByteArray())
}
val inputStream = ByteArrayInputStream(pdfOutputStream.toByteArray())
return mongoGridFsService.save(
inputStream,
fileName,
contentType = "",
metadata = null,
)
} catch (e: java.lang.Exception) {
e.printStackTrace()
} finally {
pdfOutputStream.close()
}
return ""
}
3、kotlin和java代码互相转换的网站:
Online Java to Kotlin Converter
Online Kotlin to Java Converter