首页 > 解决方案 > 将 docx 转换为 pdf 错误

问题描述

我需要将 docx 转换为 pdf,我的代码是这样的:

XWPFDocument doc = new XWPFDocument(new FileInputStream(originalPathSource));
PdfOptions options = PdfOptions.create();

        OutputStream out = null;
        try {

            out = new FileOutputStream(new File(targetFileName));
        
            PdfConverter.getInstance().convert(docx, out, options);

这些库是:

<properties>
        <versioniApache>4.0.1</versioniApache>
        <versioniApachePDF>1.0.6</versioniApachePDF>
        <versioniApacheSchema>4.1.2</versioniApacheSchema>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>${versioniApache}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${versioniApache}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>${versioniApache}</version>
        </dependency>


        <dependency>
            <groupId>fr.opensagres.xdocreport</groupId>
            <artifactId>org.apache.poi.xwpf.converter.core</artifactId>
            <version>${versioniApachePDF}</version>
        </dependency>

        <dependency>
            <groupId>fr.opensagres.xdocreport</groupId>
            <artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
            <version>${versioniApachePDF}</version>
        </dependency>

问题是当程序执行 pdfConvert 时,它给了我这个异常:

线程“main”中的异常 java.lang.NoClassDefFoundError: org.apache.poi.xwpf.converter.core.styles.XWPFStylesDocument.getFontsDocument(XWPFStylesDocument.java:1477) at org.apache.poi 的 org/apache/poi/POIXMLDocumentPart .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) at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:55) at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert (PdfConverter.java:38) 在 org.apache。poi.xwpf.converter.core.AbstractXWPFConverter.convert(AbstractXWPFConverter.java:45) at apachePoi.apachePoiMain.convertiPDF(apachePoiMain.java:137) at apachePoi.apachePoiMain.main(apachePoiMain.java:111) 原因:java.lang .ClassNotFoundException: org.apache.poi.POIXMLDocumentPart 在 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders. java:168) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 11 更多loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader. java:522) ... 11 更多loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606) 在 java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader. java:522) ... 11 更多

任何人都可以帮我解决这个问题吗?

标签: javapdfjava-8apache-poidocx

解决方案


推荐阅读