java word openoffice_java 调用OpenOffice将word格式文件转换为pdf格式

本文介绍了如何在Java环境中使用OpenOffice将Word文档转换为PDF格式。首先,需要搭建环境,包括安装OpenOffice并启动服务。接着,通过Java代码调用OpenOffice服务,实现文件转换。在转换过程中,可能会遇到连接失败的问题,这通常是因为OpenOffice服务未启动或注册。解决方法是手动启动soffice.exe进行注册。
摘要由CSDN通过智能技术生成

一:环境搭建

解压后将目录下的所有jar包放在工程的lib下面或者采用引用的方式调用这些jar包。

下载后安装,我安装的路径为D:/openOffice/install/

二:启动服务

可以通过cmd调用服务, " cd D:/openOffice/install/program"

执行

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

查看是否安装成功,查看端口对应的pid

netstat -ano|findstr  8100

查看pid对应的服务程序名

tasklist|findstr pid值

也可以把这一步省略,放到java程序中调用服务,因为启动服务占用内存比较大,在java中可以在使用

的时候调用,然后马上销毁。

三:程序代码

1:将word转换为pdf方法

1 //将word格式的文件转换为pdf格式

2 public void Word2Pdf(String srcPath, String desPath) throwsIOException {3 //源文件目录

4 File inputFile = newFile(srcPath);5 if (!inputFile.exists()) {6 System.out.println("源文件不存在!");7 return;8 }9 //输出文件目录

10 File outputFile = newFile(desPath);11 if (!outputFile.getParentFile().exists()) {12 outputFile.getParentFile().exists();13 }14 //调用openoffice服务线程

15 String command = "D:/openOffice/install/program/soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";16 Process p =Runtime.getRuntime().exec(command);17

18 //连接openoffice服务

19 OpenOfficeConnection connection = newSocketOpenOfficeConnection(20 "127.0.0.1", 8100);21 connection.connect();22

23 //转换word到pdf

24 DocumentConverter converter = newOpenOfficeDocumentConverter(25 connection);26 converter.convert(inputFile, outputFile);27

28 //关闭连接

29 connection.disconnect();30

31 //关闭进程

32 p.destroy();33 System.out.println("转换完成!");34 }

2:调用方法

1 @Test2 public void testWord2Pdf() throwsIOException {3 String srcPath = "E:/test.docx";4 String desPath = "E:/test.pdf";5 Word2Pdf(srcPath, desPath);6 }

以上代码经过验证,可以正常运行。

四:遇到问题

错误信息:

java.net.ConnectException: connection failed: socket,host=10.101.50.71,port=8100,tcpNoDelay=1: java.net.ConnectException: Connection refused: connect

at com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection.connect(AbstractOpenOfficeConnection.java:79)

原因以及解决方法:第一次调用,soffice需要注册,所以到soffice.exe的安装路径下双击soffice.exe,注册即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值