Java office在线预览实现--openoffice
来源:互联网 发布:中银淘宝校园卡 编辑:程序博客网 时间:2024/05/12 15:19
Java office在线预览实现–openoffice
本篇主要介绍用openoffice来实现office文档转换为pdf,从而方便在线预览。
首先去下载安装openoffice;
然后启动服务,这是启动命令:
cd C:\Program Files (x86)\OpenOffice 4\program soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;"
如果项目和该服务不在同一台机器上,ip地址设为该服务启动机器的地址
需要用到的jar包:
<dependency> <groupId>com.artofsolving</groupId> <artifactId>jodconverter</artifactId> <version>2.2.1</version> </dependency>
代码:
/** * 方法示例: * String sourcePath = "F:\\office\\source.doc"; * String destFile = "F:\\pdf\\target.pdf"; * office2PDF(sourcePath, destFile);*/ public static void office2PDF(String infile, String targetfile)throws Exception { // 获得文件格式 DefaultDocumentFormatRegistry formatReg = new DefaultDocumentFormatRegistry(); DocumentFormat pdfFormat = formatReg.getFormatByFileExtension("pdf");//目标文件格式 DocumentFormat Format; String[] p = infile.split("\\."); String postfix = p[p.length-1].substring(0,3); //原文件格式包括doc,docx,xls,xlsx,ppt,pptx Format = formatReg.getFormatByFileExtension(postfix); InputStream inputStream = new FileInputStream(infile); OutputStream outputStream = new FileOutputStream(targetfile); OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);//如果项目不在该服务所在机器,将ip改为openoffice安装的机器地址 try { connection.connect(); DocumentConverter converter = new StreamOpenOfficeDocumentConverter(connection); converter.convert(inputStream,Format, outputStream, pdfFormat); outputStream.flush(); outputStream.close(); inputStream.close(); } catch (ConnectException e) { e.printStackTrace(); }finally { if(connection!=null){ connection.disconnect(); connection = null; } } }
在转换成功后,有可能生成的pdf文件会出现字体不一致的问题,主要是office 文档所用字体,本机系统中没有,所以需要下载新的字体到本机,window是在c盘window下的font文件夹。目前存在的一个问题是转换速度较慢。
0 0
- Java office在线预览实现--openoffice
- 在线预览Office(openoffice )
- openoffice+pdf2swf实现在线转换office文档,实现在线预览
- Java实现在线预览--openOffice实现
- web使用openoffice实现在线预览office文档
- web使用openoffice实现在线预览office文档
- Java实现在线预览office
- Java实现Office在线预览
- java实现在线预览office文档
- Java实现文档在线预览(openoffice+swfTools+FlexPaper)
- Java实现文档在线预览(openoffice+swfTools+FlexPaper)
- java SpringMvc 实现文件在线预览(openoffice+swftools+flexpaper)
- java通过调用OpenOffice将office文件转化为pdf 在线预览之步骤一
- Openoffice+swfTools+flexPaper实现在线预览
- SPRINGMVC实现在线预览功能(openOffice)
- Java实现在线预览附件 office转换PDF
- openoffice实现office文件转换为pdf实现文件预览
- JAVA Web项目中用OpenOffice+Swftools+Flexpaper实现在线预览,txt文件出现乱码!
- 地理诗
- 浅议IMS
- glusterfs笔记
- Android RxJava+Retrofit2.0+MVP模式整合
- android API文档
- Java office在线预览实现--openoffice
- VS2010静态编译生成.exe可执行文件,使c++程序脱离VS环境运行
- 修改maven打包出来的war名称
- PHP设计模式系列 - 数据访问对象模式
- ORACLE 错误编码收集
- iOS 获取手机的ip地址 并传给后台(三步搞定)
- 【解决】error: revision cm-13.0 in platform/developers/build not found
- Ajax跨域请求
- 脚本调用ssh后出现Pseudo-terminal will not be allocated because stdin is not a terminal