Java 将.docx转换为.pdf

Java 将.docx转换为.pdf,java,pdf,kotlin,apache-poi,converters,Java,Pdf,Kotlin,Apache Poi,Converters,我正在尝试使用ApachePOI将docx转换为pdf。我看到很多关于这个问题的问题,但即使是最好的答案也不起作用。我已经尝试将版本更改为最旧版本-没有结果。我用Kotlin和Gradle。主要类别代码如下: import org.apache.poi.xwpf.converter.pdf.PdfConverter import org.apache.poi.xwpf.converter.pdf.PdfOptions import org.apache.poi.xwpf.usermodel.XW

我正在尝试使用ApachePOI将docx转换为pdf。我看到很多关于这个问题的问题,但即使是最好的答案也不起作用。我已经尝试将版本更改为最旧版本-没有结果。我用Kotlin和Gradle。主要类别代码如下:

import org.apache.poi.xwpf.converter.pdf.PdfConverter
import org.apache.poi.xwpf.converter.pdf.PdfOptions
import org.apache.poi.xwpf.usermodel.XWPFDocument
import java.io.*


class o {
    fun ConvertToPDF(docPath: String?, pdfPath: String?) {
            val doc = FileInputStream(File(docPath!!))
            val document = XWPFDocument(doc)
            val options = PdfOptions.create()
            val out = FileOutputStream(File(pdfPath!!))
            PdfConverter.getInstance().convert(document, out, options)
    }

    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            val cwoWord = o()
            println("Start")
            cwoWord.ConvertToPDF("C:\\simple.docx",
                "123.pdf")
        }
    }
}
错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/POIXMLDocumentPart
    at org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.getFontsDocument(XWPFStylesDocument.java:1477)
    at org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.<init>(XWPFStylesDocument.java:190)
    at org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.<init>(XWPFStylesDocument.java:184)
    at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.createStylesDocument(XWPFDocumentVisitor.java:166)
    at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.<init>(XWPFDocumentVisitor.java:159)
    at org.apache.poi.xwpf.converter.pdf.internal.PdfMapper.<init>(PdfMapper.java:149)
    at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:55)
    at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:38)
    at org.apache.poi.xwpf.converter.core.AbstractXWPFConverter.convert(AbstractXWPFConverter.java:45)
    at o.ConvertToPDF(o.kt:13)
    at o$Companion.main(o.kt:21)
    at o.main(o.kt)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.POIXMLDocumentPart
Caused by: java.lang.ClassNotFoundException: org.apache.poi.POIXMLDocumentPart

    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 12 more
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/poi/POIXMLDocumentPart 位于org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.getFontsDocument(XWPFStylesDocument.java:1477) 位于org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.(XWPFStylesDocument.java:190) 位于org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.(XWPFStylesDocument.java:184) 位于org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.createStylesDocument(XWPFDocumentVisitor.java:166) 位于org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor。(XWPFDocumentVisitor.java:159) 位于org.apache.poi.xwpf.converter.pdf.internal.PdfMapper.(PdfMapper.java:149) 位于org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:55) 位于org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:38) 位于org.apache.poi.xwpf.converter.core.AbstractXWPFConverter.convert(AbstractXWPFConverter.java:45) 在o.T.ToPDF处(o.kt:13) 在o$Companion.main处(o.kt:21) 在o.main(o.kt)处 原因:java.lang.ClassNotFoundException:org.apache.poi.POIXMLDocumentPart 原因:java.lang.ClassNotFoundException:org.apache.poi.POIXMLDocumentPart 位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) 位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 还有12个
有人能解释一下怎么了吗

尝试poi ooxml:3.10.1版本。它会工作的。@Josepraven,谢谢,它帮助解决了上面的问题,但现在我在线程“main”java.lang.CompatibleClassChangeError中出现了异常:找到了接口org.apache.poi.util.POILogger,但在apache poi 4.1.0中它是一个类。请按原样使用poi:4.0.1版本。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/POIXMLDocumentPart
    at org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.getFontsDocument(XWPFStylesDocument.java:1477)
    at org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.<init>(XWPFStylesDocument.java:190)
    at org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.<init>(XWPFStylesDocument.java:184)
    at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.createStylesDocument(XWPFDocumentVisitor.java:166)
    at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.<init>(XWPFDocumentVisitor.java:159)
    at org.apache.poi.xwpf.converter.pdf.internal.PdfMapper.<init>(PdfMapper.java:149)
    at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:55)
    at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:38)
    at org.apache.poi.xwpf.converter.core.AbstractXWPFConverter.convert(AbstractXWPFConverter.java:45)
    at o.ConvertToPDF(o.kt:13)
    at o$Companion.main(o.kt:21)
    at o.main(o.kt)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.POIXMLDocumentPart
Caused by: java.lang.ClassNotFoundException: org.apache.poi.POIXMLDocumentPart

    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 12 more