java远程调用openoffice服务将word文件转换成pdf问题

发布于 2021-12-02 11:42:06 字数 2796 浏览 816 评论 4

启动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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

温柔少女心 2021-12-04 13:24:23
//DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
            DocumentConverter converter = new StreamOpenOfficeDocumentConverter(connection);

第二行的方式,我测试是可以用来远程调用的。但是还是有些问题。

恋你朝朝暮暮 2021-12-04 12:46:17

这样实现太痛苦了,用PageOffice直接调用WebSaveAsPDF()转PDF文件就可以了,尤其是转换格式肯定完美。

掩饰不了的爱 2021-12-04 00:01:14

不是这样的,远程调用openoffice的话,用DocumentConverter converter = new StreamOpenOfficeDocumentConverter(connection);就好,并且远程主机启动时的ip不能写成127.0.0.1,需要写成外部能访问到的实际ip

牵你的手,一向走下去 2021-12-03 11:59:02

确实是这样的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文