如何在服务器模式下使用 OpenOffice 作为多线程服务?
2022-09-01 23:31:33
在服务器模式下使用OpenOffice的体验如何?我知道OpenOffice不是多线程的,现在我需要在我们的服务器中使用它的服务。
我能做些什么来克服这个问题?
我使用的是Java。
在服务器模式下使用OpenOffice的体验如何?我知道OpenOffice不是多线程的,现在我需要在我们的服务器中使用它的服务。
我能做些什么来克服这个问题?
我使用的是Java。
使用当前版本的 JODConverter (3.0-SNAPSHOT),在无外设模式下处理 OOo 的多个线程非常容易,因为该库现在支持启动多个实例并将它们保存在池中,只需在构造 OfficeManager 实例时提供多个端口号或命名管道:
final OfficeManager om = new DefaultOfficeManagerConfiguration()
.setOfficeHome("/usr/lib/openoffice")
.setPortNumbers(8100, 8101, 8102, 8103)
.buildOfficeManager();
om.start();
然后,您可以使用库,例如转换文档,而无需在后台处理OOo实例池:
OfficeDocumentConverter converter = new OfficeDocumentConverter(om);
converter.convert(new File("src/test/resources/test.odt"), new File("target/test.pdf"));
是的,我正在使用OpenOffice作为文档转换服务器。
不幸的是,你的问题的解决方案是生成一个OpenOffice进程池。
JODConverter的commons-pool分支(在它移动到之前)为您实现了这个开箱即用的。code.google.com