gpt4 book ai didi

java - 使用 Documents4j 库将 docx 转换为 pdf 时,如何解决以下异常?

转载 作者:搜寻专家 更新时间:2023-10-31 19:44:45 33 4
gpt4 key购买 nike

我正在使用以下代码将 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();
}

我得到以下异常。我使用的代码与 documents4j 官方网站中提到的相同。

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。如果有人在服务器上托管此代码,还有一个远程转换器,您可以使用它代替本地转换器,如图所示 here .

关于java - 使用 Documents4j 库将 docx 转换为 pdf 时,如何解决以下异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34725363/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com