Doc和Docx到PDF的转换,在Linux上使用Java

时间:2018-11-12 19:42:47

标签: java pdf

我有一个Java代码,可以使用document4j将doc,docx转换为pdf,在Windows上可以正常工作,但是在linux中,我有这个问题。我可以在Linux上使用该库吗?我可以有什么替代品?

错误是

java.io.IOException: Cannot run program "cmd" (in directory "/tmp/1542047549404-0"): error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) ~[na:1.8.0_171]

2018-11-12 18:32:29.508 ERROR 10831 --- [pool-1-thread-1] c.d.c.msoffice.MicrosoftWordBridge       : Unable to run script: /tmp/1542047549404-0/word_start184242440.vbs

java.io.IOException: Could not execute [cmd, /S, /C, ""/tmp/1542047549404-0/word_start184242440.vbs""] in /tmp/1542047549404-0.
    at org.zeroturnaround.exec.ProcessExecutor.invokeStart(ProcessExecutor.java:936) ~[zt-exec-1.8.jar!/:na]

1 个答案:

答案 0 :(得分:0)

我认为在他们的homepage上列出了为什么在Linux下无法进行转换的几个原因:

[...]仅在以下情况下才能运行LocalConverter:

  • JVM在Microsoft Scripting Host for VBS附带的MS Windows平台上运行(对于所有现代版本的MS Windows都是如此。
  • MS Word已安装在2007或更高版本中。仅在安装了PDF插件时才支持PDF转换。该插件包含在Word 2010及更高版本的MS Word中。
  • LocalConverter启动时,MS Word尚未运行。对于由LocalConverter的另一个实例运行的MS Word实例尤其如此。 (如前所述,请注意,对于在不同的JVM上运行或由不同的类加载器加载的实例也是如此。)
  • 已为运行JVM的用户正确激活并配置了
  • MS Word。因此,MS Word在程序启动或任何其他向导时不需要任何配置。
  • 当使用LocalConverter的JVM应用程序作为服务运行时,请从下面的MS Windows服务配置文件中记录有关使用MS Word的信息。

有关其他方法,请参见How to convert MS doc to pdf