首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docsplit/jodconverter在debian上的openoffice问题

docsplit/jodconverter在debian上的openoffice问题
EN

Stack Overflow用户
提问于 2011-12-08 02:22:56
回答 1查看 3.4K关注 0票数 0

我正在尝试在debian机器上配置docsplit。在安装了所有依赖项之后,我尝试从命令行运行一个简单的转换,以确保它可以正常工作。在使用jodconverter时,我一直收到以下错误:

代码语言:javascript
复制
Exception in thread "main" org.artofsolving.jodconverter.office.OfficeException:   failed to start and connect
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.java:64)
   at org.artofsolving.jodconverter.office.PooledOfficeManager.start(PooledOfficeManager.java:101)
   at org.artofsolving.jodconverter.office.ProcessPoolOfficeManager.start(ProcessPoolOfficeManager.java:62)
   at org.artofsolving.jodconverter.cli.Convert.main(Convert.java:112)
Caused by: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: method java.util.regex.Pattern.quote wit signature (Ljava.lang.String;)Ljava.lang.String; was not found.
   at java.util.concurrent.FutureTask$Sync.innerGet(libgcj.so.90)
   at java.util.concurrent.FutureTask.get(libgcj.so.90)
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.java:62)
   ...3 more
Caused by: java.lang.NoSuchMethodError: method java.util.regex.Pattern.quote with signature (Ljava.lang.String;)Ljava.lan.String; was not found.
   at org.artofsolving.jodconverter.process.LinuxProcessManager.findPid(LinuxProcessManager.java:51)
   at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.java:65)
   at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.java:60)
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess.doStartProcessAndConnect(ManagedOfficeProcess.java:119)
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess.access$000(ManagedOfficeProcess.java:31)
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess$1.run(ManagedOfficeProcess.java:58)
   at java.util.concurrent.Executors$RunnableAdapter.call(libgcj.so.90)
   at java.util.concurrent.FutureTask$Sync.innerRun(libgcj.so.90)
   at java.util.concurrent.FutureTask.run(libgcj.so.90)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(libgcj.so.90)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(libgcj.so.90)
   at java.lang.Thread.run(libgcj.so.90)

我已经尝试在无头模式下启动openoffice,如下所示

代码语言:javascript
复制
/usr/bin/soffice -headless -accept="socket,host=127.0.0.1,port=2002;urp"

编辑:

我删除了当前安装的OpenOffice并从download.openoffice.org获取了最新的软件包,从而解决了上述问题

我成功地使用docsplit gem附带的jodconverter jar将nd odt文件转换为pdf,如下所示:

代码语言:javascript
复制
java -jar /usr/lib/ruby/gems/1.8/gems/docsplit-0.6.3/vendor/jodconverter/jodconverter-core-3.0-beta-4.jar test.odt test.pdf

不幸的是,我仍然有一个docsplit的问题。如果我尝试在命令行中使用docsplit从odt文件中提取图像,如下所示:

代码语言:javascript
复制
docsplit images test.odt --format jpg

我从jodconverter中得到以下错误:

代码语言:javascript
复制
Exception in thread "main" org.artofsolving.jodconverter.office.OfficeException: could not load document: test.odt
    at org.artofsolving.jodconverter.AbstractConversionTask.loadDocument(AbstractConversionTask.java:92)
    at org.artofsolving.jodconverter.AbstractConversionTask.execute(AbstractConversionTask.java:59)
    at org.artofsolving.jodconverter.office.PooledOfficeManager$2.run(PooledOfficeManager.java:80)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: com.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported one.
    at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:177)
    at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:143)
    at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:335)
    at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:304)
    at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:91)
    at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:639)
    at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:151)
    at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:133)
    at $Proxy4.loadComponentFromURL(Unknown Source)
    at org.artofsolving.jodconverter.AbstractConversionTask.loadDocument(AbstractConversionTask.java:90)
    ... 8 more

任何意见都将不胜感激。

-Thanks

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-09 00:58:20

整个问题已经解决了。我最初安装的是jsut、openoffice.org meta包和openoffice.org.org-headless包。后来我注意到openoffice.org元程序包并没有安装诸如编写器、计算等单独的组件。在安装了这些程序包之后,我能够使用docsplit命令运行转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8420449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档