openoffice实现office文件转换为pdf实现文件预览
来源:互联网 发布:手机壁纸软件may 编辑:程序博客网 时间:2024/05/29 18:37
在工作中用到这功能,找了好多方法,都出现不同的问题,故整合下,随意看看。
转载:点击打开链接
拿出一个例子。。
1.下载安装openoffice:点击打开链接
2.openoffice启动服务两种:
1.在安装目录下的program文件夹中:D:\installs\OpenOffice 4\program按住shift并右击,打开命令窗口:
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
缺点就是长期打开服务,占用资源
2.java代码中调用,调用结束服务就关闭(我采用的就是这种方式)
详见代码
3.jar包:Jodconverter 2.2.2 我放在了百度云盘上了:http://pan.baidu.com/s/1o8eTV3G
其中Jodconverter 2.2.2,在maven库上只有2.2.1,到不支持docx等07版文件格式,所以要自己导入2.2.2;其他都能在maven公共库上依赖到
代码如下:
import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import com.artofsolving.jodconverter.DocumentConverter;import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter;import com.beyondsoft.hz.bysworkprd.common.util.ErrorCodeConstants;/** * * @author Administrator * @version $Id: FileConverter.java, v 0.1 2016年4月14日 上午10:52:54 Administrator Exp $ */public class FileConverter { private static final String FILEURL = "E:/workspace/bkprd_20160315/bprd/webapp/src/main/webapp"; private String fileString; //需要预览的目标文件地址 private String outputPath = "";// 输入路径,如果不设置就输出在默认位置 private String fileName; private File pdfFile; private File docFile; static String loadStream(InputStream in) throws IOException { int ptr = 0; //把InputStream字节流 替换为BufferedReader字符流 2013-07-17修改 BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder buffer = new StringBuilder(); while ((ptr = reader.read()) != -1) { buffer.append((char) ptr); } return buffer.toString(); } public FileConverter(String fileString) { ini(fileString); } /*初始化 @param fileString */ private void ini(String fileurl) { //拼接文件地址 this.fileString = FileConverter.FILEURL + fileurl; //截取文件名(去掉点以后的文件后缀) fileName = fileString.substring(0, fileString.lastIndexOf(".")); // System.out.println("截取文件名[fileName]:" + fileName); docFile = new File(fileString); pdfFile = new File(fileName + ".pdf"); } /*转换主方法 * true:转换完成 * false: */ public String conver() { if (fileString.endsWith(".pdf")) { return ErrorCodeConstants.PDF_EXIST; } String rsult = file2pdf(); return rsult; } /*转为PDF @param file */ private String file2pdf() { /** * 检测目标文件是否存在 * exists:true:存在 false:不存在 */ if (!docFile.exists()) { // System.out.println("****doc2pdf()-swf转换器异常,需要转换的文档不存在,无法转换****"); return ErrorCodeConstants.NO_AIM_FILE; } /** * pdf文档已存在 */ if (pdfFile.exists()) { return ErrorCodeConstants.PDF_EXIST; } /**********************自动启动服务************************/ try { //OpenOffice的安装目录 String OpenOffice_HOME = "D:\\installs\\OpenOffice 4"; // 如果从文件中读取的URL地址最后一个字符不是 '\',则添加'\' if (OpenOffice_HOME.charAt(OpenOffice_HOME.length() - 1) != '\\') { OpenOffice_HOME += "\\"; } // 启动OpenOffice的服务 String command = OpenOffice_HOME + "program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\""; // System.out.println("-------服务开始启动-----------"); Process pro = Runtime.getRuntime().exec(command); OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100); connection.connect(); DocumentConverter converter = new StreamOpenOfficeDocumentConverter(connection); // System.out.println("-------服务已启动-----------"); converter.convert(docFile, pdfFile); // close the connection connection.disconnect(); // 关闭OpenOffice服务的进程 pro.destroy(); // System.out.println("-------服务已停止-----------"); // System.out.println("****doc2pdf()-pdf转换成功,PDF输出:" + pdfFile.getPath() + "****"); } catch (java.net.ConnectException e) { return ErrorCodeConstants.SERVER_ERROR; // System.out.println("****doc2pdf()-swf转换异常,openoffice服务未启动!****"); } catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) { return ErrorCodeConstants.LOAD_FILE_FAIL; // System.out.println("****doc2pdf()-swf转换器异常,读取转换文件失败****"); } catch (Exception e) { return ErrorCodeConstants.UNKNOWN_ERROR; } return ErrorCodeConstants.SUCCESS; }}
0 0
- openoffice实现office文件转换为pdf实现文件预览
- Centos5下OpenOffice的安装部署,实现office文件转换为pdf文件
- OpenOffice+JodConverter实现Office文件到PDF的转换
- openoffice实现pdf上传文件预览功能
- Linux下OpenOffice转换Office为PDF的java实现
- 用Java实现office文件转换为PDF文件
- java通过调用OpenOffice将office文件转化为pdf 在线预览之步骤一
- openoffice+pdf2swf实现在线转换office文档,实现在线预览
- OpenOffice+SWFTools+ FlexPaper实现文件预览
- .net 实现Office文件预览
- Linux Openoffice转换Office为pdf
- 将Office(如:Word、Excel、PPT 等)文件转PDF(通过OpenOffice实现)
- Java office在线预览实现--openoffice
- doc、pdf转换为swf文件预览
- C#实现PDF文件转换为图片
- .net 实现Office文件预览,word文件在线预览、excel文件在线预览、ppt文件在线预览,excel转html,office格式转换,
- Java实现在线预览附件 office转换PDF
- C# web实现word 转Html、office转Html、pdf转图片 在线预览文件
- [转]JQuery更改input元素的disabled属性——disabled<——>enabled
- 学习编程是为了什么?
- 多个js文件合并为一个大js文件的方法
- 单源点最短路径Dijkstra和Bellmanford
- [HDU2196]Computer(树形dp)
- openoffice实现office文件转换为pdf实现文件预览
- Android之二维码的扫描与生成
- 快排的非递归实现
- 文字高亮显示
- 飞机大战
- JS之实现鼠标切换效果
- jquery插件fullPage.js的用法
- Android Studio 2.0学习教程 - (3)Gradle的简介与安装
- caffe 源码学习(三) SyncedMemory 与 shared_ptr