java远程调用openoffice服务将word文件转换成pdf问题
启动openoffice服务的命令
soffice -headless -accept="socket,host=192.168.1.129,port=8100;urp;" -nofirststartwizard
关键java程序
OpenOfficeConnection connection = new SocketOpenOfficeConnection("192.168.1.129", 8100);
看构造函数是支持java程序远程调用openoffice服务的,但是实际测试出现异常
word文件和java程序都在应用服务器192.168.1.130上,openoffice服务在192.168.1.129上
Exception in thread "main" com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException: conversion failed: could not load input document at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.loadAndExport(OpenOfficeDocumentConverter.java:131) at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.convertInternal(OpenOfficeDocumentConverter.java:120) at com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:104) at com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:74) at com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:70) 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:182) at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:148) at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:344) at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:313) at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:101) at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:652) at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:154) at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:136) at com.sun.proxy.$Proxy5.loadComponentFromURL(Unknown Source) at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.loadDocument(OpenOfficeDocumentConverter.java:150) at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.loadAndExport(OpenOfficeDocumentConverter.java:127) ... 6 more
后来发现,在openoffice服务器上也放一份word文件,就可以成功转换了,并且转换生成的pdf文件也在openoffice服务器上
如此以来,java调用openoffice服务将word文件转换成pdf,必须保证openoffice服务和文件在同一个服务器上???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
第二行的方式,我测试是可以用来远程调用的。但是还是有些问题。
这样实现太痛苦了,用PageOffice直接调用WebSaveAsPDF()转PDF文件就可以了,尤其是转换格式肯定完美。
不是这样的,远程调用openoffice的话,用DocumentConverter converter = new StreamOpenOfficeDocumentConverter(connection);就好,并且远程主机启动时的ip不能写成127.0.0.1,需要写成外部能访问到的实际ip
确实是这样的