最近项目中需要用到转换pdf功能,查询资料后选择了openOffice服务。
在调试过程中遇到如标题描述的问题,各种查询后无法解决,卡壳数日后终于解决,记录一下。
废话不多说,以下是调试过程。
导入jar包:
implementation 'org.jodconverter:jodconverter-local:4.3.0'
implementation 'org.jodconverter:jodconverter-core:4.3.0'
启动服务:
LocalOfficeManager manager = LocalOfficeManager.builder()
.officeHome("D:\\openoffice4\\OpenOffice4").portNumbers(8001).install().build();
manager.start();
问题出现:
org.jodconverter.core.office.OfficeException: An error prevents us to start a process with --accept 'socket,host=127.0.0.1,port=8001,tcpNoDelay=1;urp;StarOffice.ServiceManager'
at org.jodconverter.local.office.OfficeProcess.start(OfficeProcess.java:442)
at org.jodconverter.local.office.OfficeProcessManager.doStartProcessAndConnect(OfficeProcessManager.java:145)
at org.jodconverter.local.office.OfficeProcessManager.lambda$startAndWait$3(OfficeProcessManager.java:287)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.jodconverter.core.office.RetryTimeoutException
at org.jodconverter.core.office.AbstractRetryable.execute(AbstractRetryable.java:81)
at org.jodconverter.core.office.AbstractRetryable.execute(AbstractRetryable.java:52)
at org.jodconverter.local.office.OfficeProcess.start(OfficeProcess.java:430)
... 7 more
能查询到的资料很少,大多都是home路径存在中文,显然我的路径是不包含中文的。
咋办咋办咋办???
以下是debug参数,我寻思是否这个workingDir中包含中文也会影响openOffice运行?
于是我增加了指定workingDir不包含中文的路径
LocalOfficeManager manager = LocalOfficeManager.builder().officeHome("D:\\openoffice4\\OpenOffice4")
.workingDir("D:\\openoffice4").portNumbers(8001).install().build();
manager.start();
果然
2023-09-28 09:34:57.913 | INFO | [jodconverter-officeprocess-0]
Starting process with --accept 'socket,host=127.0.0.1,port=8001,tcpNoDelay=1;urp;StarOffice.ServiceManager' and profileDir 'D:\openoffice4\.jodconverter_socket_host-127.0.0.1_port-8001_tcpNoDelay-1'
2023-09-28 09:34:58.137 | INFO | [jodconverter-officeprocess-0]
Started process; pid: 17464
2023-09-28 09:34:58.452 | INFO | [jodconverter-officeprocess-0]
Connected: 'socket,host=127.0.0.1,port=8001,tcpNoDelay=1'
问题解决