Конвертировать .docx в .pdf - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь конвертировать docx в pdf с Apache POI. Я видел много вопросов по этой проблеме, но даже лучшие ответы не работают. Я уже пытался изменить версию на самую старую - безрезультатно. Я использую 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")
        }
    }
}

build.gradle с зависимостями

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"

    implementation "org.apache.poi:poi-ooxml-schemas:4.1.0"
    implementation "fr.opensagres.xdocreport:org.apache.poi.xwpf.converter.core:1.0.6"
    implementation "fr.opensagres.xdocreport:org.apache.poi.xwpf.converter.pdf:1.0.6"
    implementation "fr.opensagres.xdocreport:fr.opensagres.xdocreport.itext.extension:2.0.0"
    implementation "com.lowagie:itext:2.1.7"
    implementation "org.apache.poi:ooxml-schemas:1.4"
    implementation "org.apache.xmlbeans:xmlbeans:3.1.0"
    implementation "org.dom4j:dom4j:2.1.1"
    implementation "org.apache.poi:poi-ooxml:4.1.0"
    implementation "org.apache.poi:poi:4.1.0"   

    testCompile group: 'junit', name: 'junit', version: '4.12'
}

Ошибка:

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

Может кто-нибудь объяснить, что не так?

...