簡體   English   中英

我如何解決以下在使用Documents4j庫將docx轉換為pdf時遇到的異常?

[英]How do I solve this below exception I get when converting docx to pdf using Documents4j library?

我使用以下代碼將docx轉換為pdf。

    public static void main(String[] args) {
    File inputdocxfile = new File(System.getProperty("user.dir") + "/src/test/resources/files/output/");

    File outputpdffile = new File(System.getProperty("user.dir") + "/src/test/resources/files/output/"
            + "CustomerOutputdocx.pdf");
    IConverter converter = LocalConverter.builder().baseFolder(inputdocxfile)
            .workerPool(20, 25, 2, TimeUnit.SECONDS).processTimeout(5, TimeUnit.SECONDS).build();

    Future<Boolean> conversion = converter.convert(inputdocxfile).as(DocumentType.MS_WORD).to(outputpdffile)
            .as(DocumentType.PDF).prioritizeWith(1000).schedule();
}

我在下面的例外中得到了這個。 我使用的文件與官方網站上提到的相同。

Exception in thread "main" java.lang.IllegalStateException: The application was started without any registered or class-path discovered converters.
at com.documents4j.conversion.ExternalConverterDiscovery.validate(ExternalConverterDiscovery.java:68)
at com.documents4j.conversion.ExternalConverterDiscovery.loadConfiguration(ExternalConverterDiscovery.java:85)
at com.documents4j.conversion.DefaultConversionManager.<init>(DefaultConversionManager.java:22)
at com.documents4j.job.LocalConverter.makeConversionManager(LocalConverter.java:74)
at com.documents4j.job.LocalConverter.<init>(LocalConverter.java:47)
at com.documents4j.job.LocalConverter$Builder.build(LocalConverter.java:162)
at com.apakgroup.docgen.converters.ConvertToPdf.main(ConvertToPdf.java:19)
Exception in thread "Shutdown hook: com.documents4j.job.LocalConverter" java.lang.NullPointerException
at com.documents4j.job.LocalConverter.shutDown(LocalConverter.java:95)
at com.documents4j.job.ConverterAdapter$ConverterShutdownHook.run(ConverterAdapter.java:125)

我錯過了很少的依賴,我也不得不使用較新版本的commons-io。 我之前使用過commons-io 1.3但后來我才知道Documents4J使用了commons-io 1.4或更高版本,當commons-io版本被更改時,它工作了。 如果有人想知道我在java中將docx文件轉換為pdf的依賴關系。 這些就是那些。

    <dependency>
        <groupId>com.documents4j</groupId>
        <artifactId>documents4j-api</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.documents4j</groupId>
        <artifactId>documents4j-local</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.documents4j</groupId>
        <artifactId>documents4j-transformer-msoffice-word</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>18.0</version>
    </dependency>

讓我提醒你。 此庫僅適用於安裝了MS Office的計算機; 因為庫使用應用程序本身將docx轉換為pdf。 如果有人在服務器上托管這個代碼也有一個遙控器,其如圖所示,你可以改用本地轉換器的位置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM