后端调用word转pdf接口,kotlin,spring boot,idea,documents4j

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值