2

我正在尝试 JODConverter 将 docx 文件转换为 pdf。我正在使用 LibreOffice 5.3.4。我尝试运行此代码,但出现错误,请参阅此。

import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager;

import java.io.File;

public class PDF    {

    public static void main(String[] args) {
    OfficeManager manager = new DefaultOfficeManagerConfiguration().buildOfficeManager();
    manager.start();
    OfficeDocumentConverter converter = new OfficeDocumentConverter(manager);
    converter.convert(new File("E:/Project Synopsis.docx"), new File("E:/Project Synopsis.pdf"));
    }
}

Exception in thread "main" java.lang.IllegalStateException: officeHome not set and could not be auto-detected
at org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration.buildOfficeManager(DefaultOfficeManagerConfiguration.java:163)
at com.company.PDF.main(PDF.java:12)
4

1 回答 1

2

JODConverter 将仅检测默认的办公室安装(在 Windows 上:c:// 程序文件...)。尝试将自己设置为 LibreOffice 的主目录。

您可以使用 DefaultOfficeManagerConfiguration#setOfficeHome 来执行此操作:

DefaultOfficeManagerConfiguration config = new DefaultOfficeManagerConfiguration();
config.setOfficeHome(new File("Path to Office"));
OfficeManager manager = config.buildOfficeManager();
try {
    manager.start();
    OfficeDocumentConverter converter = new OfficeDocumentConverter(manager);
    converter.convert(new File("E:/Project Synopsis.docx"), new File("E:/Project Synopsis.pdf"));
} finally {
    manager.stop();
}
于 2017-08-13T21:02:01.210 回答