参考:https://blog.csdn.net/liumiaocn/article/details/73480915
openoffice有window和linux版本,通过安装openoffice软件,在java里头进行调用它来实现各种格式的转换,
核心代码如下
/** * 将Office文档转换为PDF. 运行该函数需要用到OpenOffice, OpenOffice下载地址为 * http://www.openoffice.org * <pre> * 方法示例: * window系统下 * String sourcePath = "F:\\office\\source.doc"; * String destFile = "F:\\pdf\\dest.pdf"; * Office2PDF.office2PDF(sourcePath, destFile); * linux系统下 * String sourcePath = "/office/source.doc"; * String destFile = "/pdf/dest.pdf"; * Office2PDF.office2PDF(sourcePath, destFile); * </pre> * @param sourceFile * 源文件, 绝对路径. 可以是Office2003-2007全部格式的文档 * 包括.doc,.docx, .xls, .xlsx, .ppt, .pptx等 * @param destFile * 目标文件. 绝对路径. * @return 操作成功与否的提示信息. * 如果返回 -1,表示找不到源文件 * 如果返回 0 ,表示转换失败 * 如果返回 1 ,表示操作成功 */ public static int office2PDF(String sourceFile, String destFile) { Process pro = null; OpenOfficeConnection connection = null; try { File inputFile = new File(sourceFile); if (!inputFile.exists()) { return -1;// 找不到源文件, 则返回-1 } // 如果目标路径不存在, 则新建该路径 File outputFile = new File(destFile); if (!outputFile.getParentFile().exists()) { outputFile.getParentFile().mkdirs(); } String OpenOffice_HOME = OPEN_OFFICE_HOME; if (OpenOffice_HOME == null || OpenOffice_HOME =="") { return -1; } String separator = System.getProperty("file.separator"); if (OpenOffice_HOME.substring(OpenOffice_HOME.length()-1) != separator) { OpenOffice_HOME += separator; } String sofficeProgram = "/".equals(separator)?"soffice":"soffice.exe"; // 启动OpenOffice的服务 String ooProgram = "program" + separator + sofficeProgram + " -headless -accept=\"socket,host=%s,port=%s;urp;\" -nofirststartwizard"; String command = OpenOffice_HOME + String.format(ooProgram, OPEN_OFFICE_IP,OPEN_OFFICE_PORT); pro = Runtime.getRuntime().exec(command); connection = new SocketOpenOfficeConnection(OPEN_OFFICE_IP, Integer.parseInt(OPEN_OFFICE_PORT)); connection.connect(); //调用openoffice转换格式类进行转换 DocumentConverter converter = new OpenOfficeDocumentConverter(connection); converter.convert(inputFile, outputFile); } catch (FileNotFoundException e) { e.printStackTrace(); return -1; } catch (ConnectException e) { e.printStackTrace(); return 0; } catch (IOException e) { e.printStackTrace(); return 0; }finally { //关闭连接 if(connection != null && connection.isConnected()) { connection.disconnect(); } // 关闭OpenOffice服务的进程 if(pro != null) { pro.destroy(); } } return 1; }
在window上进行转换速度正常,字体也正常,linux下会乱码需要拷贝字体到/usr/share/fonts下来解决乱码问题,速度上很慢,目前还没有找到解决方案,需要依赖的包,参考如下pom.xml的配置
相关推荐
基于Java,利用OpenOffice转换office为PDF, 内附有jar包,java实现,OpenOffice下载地址,及OpenOffice在Linux下的安装实现。
asp.net利用OpenOffice转换WORD/EXCEL/PDF为PDF,加水印源码
需要OpenOffice与相应的SDK, 文件中的源码可以直接复制使用, 支持微软所有Office文件
NULL 博文链接:https://zhang-637.iteye.com/blog/1487556
NULL 博文链接:https://titanseason.iteye.com/blog/1471606
利用OpenOffice技术将word、ppt、excel等文本文件转换成pdf。以实现在线预览的功能
将"doc", "docx", "xls", "xlsx", "ppt", "pptx",txt等转化为PDF,原理是用到我们的工具OpenOffice。还有PDF转化img图片。具体操作请看我博客"doc", "docx", "xls", "xlsx", "ppt", "pptx",txt。等文件转化为pdf
JodConverter一个Java的OpenDocument 文件转换器,可以进行许多文件格式的转换,它利用OpenOffice所提供的转换介面来进行转换工作,它能进行以下的转换工作: 一、Microsoft Office格式转换为OpenDocument,以及...
openoffice--word转PDF,利用openoffice将word文档转为PDF
Entry.java这个类的原理是先通过OfficeToPDF.java把文档转成pdf,然后再通过Pdf2Jpg.java这个类把PDF转成JPG或者PNG,想转成什么格式图片在Pdf2Jpg.java这个类当中设置一下,代码经过测试,完全没有问题,如果碰到...
jodconverter-2.2.2.zip 利用openoffice word转pdf所需jar 使用说明:https://blog.csdn.net/weixin_40845192/article/details/104660387
主要介绍了Java利用openoffice将doc、docx转为pdf实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
JodConverter一个Java的OpenDocument 文件转换器,可以进行许多文件格式的转换,它利用OpenOffice所提供的转换介面来进行转换工作,它能进行以下的转换工作: 一、Microsoft Office格式转换为OpenDocument,以及...
将word文档转化为PDF是项目中常见的需求之一,目前主流的方法可以分为两大类,一类是利用各种Office应用进行转换,譬如Microsoft Office、WPS以及LiberOffice,另一种是利用各种语言提供的对于Office文档读取的接口...
是采用Java语言开发时,利用openoffice服务的常用jar包jodconverter-2.2.2.jar、ridl-3.0.1.jar、org.apache.commons.io.jar、juh.jar、jurt.jar、unoil.jar、slf4j-api-1.7.13.jar、slf4j-jdk14-1.7.13.jar、...
1、利用小美的Jacob调用MS Office转换文档为PDF 2、JCom是日本的一个开源项目,可以轻松实现office转换pdf 3、可以利用开源的OpenOffice,这个是linux提供的一个用于office的工具,调用内部API可以方便转换。 另外...
利用openoffice第三方插件,结合java 实现 Word转PDF
Java利用OpenOffice将word等office文档转换成PDF
仿百度文库解决方案(四)——利用JODConverter调用OpenOffice.org服务转换文档为PDF 仿百度文库解决方案(五)——利用SWFTools转换PDF文档为SWF 仿百度文库解决方案(六)——利用FlexPaper显示Flash(SWF)
Java程序中可以利用OpenOffice,将办公文档(包括doc、docx、xls、xlsx等)转换为PDF格式的文档。由于PDF格式的文档可以达到在线预览的效果,而Office办公文档实现在线预览相对来说会比较麻烦,但曲线救国,通过文档...