博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 调用OpenOffice将word格式文件转换为pdf格式
阅读量:6083 次
发布时间:2019-06-20

本文共 2199 字,大约阅读时间需要 7 分钟。

一:环境搭建

OpenOffice 下载地址

JodConverter 下载地址

解压后将目录下的所有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) throws IOException { 3         // 源文件目录 4         File inputFile = new File(srcPath); 5         if (!inputFile.exists()) { 6             System.out.println("源文件不存在!"); 7             return; 8         } 9         // 输出文件目录10         File outputFile = new File(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 = new SocketOpenOfficeConnection(20                 "127.0.0.1", 8100);21         connection.connect();22 23         // 转换word到pdf24         DocumentConverter converter = new OpenOfficeDocumentConverter(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() throws IOException {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,注册即可。

转载地址:http://rjkwa.baihongyu.com/

你可能感兴趣的文章
四则运算程序生成
查看>>
PIE SDK矢量数据的创建
查看>>
洛谷p1064 金明的预算方案
查看>>
10步让你成为更优秀的程序员
查看>>
杭电ACM 2013
查看>>
CF10E Greedy Change 判断硬币系统是否能用贪心策略
查看>>
坑人的开发——记一次私活的坑人经历
查看>>
sys用户无法远程登陆
查看>>
加速原型设计
查看>>
Android中文API(145) —— NotificationManager
查看>>
JS DateTime 格式化
查看>>
ASP.NET RSA 加密
查看>>
数据库优化设计方案
查看>>
使用seajs出现间歇性jquery加载失败的问题记录
查看>>
多进程服务器架构
查看>>
Python的Pexpect的简单使用
查看>>
.NET设计模式(6):原型模式(Prototype Pattern)(转)
查看>>
.NET设计模式(17):命令模式(Command Pattern)(转)
查看>>
Session内置对象
查看>>
MyBatis数据持久化(十)与Spring4整合
查看>>