我正在尝试使用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)
答案 0 :(得分:1)
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();
}