参考: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的配置
相关推荐
本教程将详细讲解如何利用OpenOffice的API和C#编程语言来实现Word、Excel和PowerPoint文档转换为PDF格式。 一、OpenOffice的API简介 OpenOffice提供了一套名为UNO(Universal Network Objects)的接口,允许开发者...
Java使用OpenOffice转换Office文档为PDF是一种常见的技术需求,尤其在企业级应用中,为了保持一致性和跨平台兼容性,可能会需要将Word、Excel或PowerPoint文档转换为PDF格式。以下将详细介绍如何在Java环境中利用...
在OpenOffice中将多列Excel转换为PDF时,可能会遇到行与列对应不正确的问题,尤其是在数据排列复杂或格式设置不当时。以下是一份详细的解决方法,旨在帮助用户正确地进行转换,确保PDF中的数据保持原始Excel文件的...
在这个场景下,我们需要讨论的是如何利用OpenOffice将含有多列数据的Excel文件正确地转换成PDF,保持行列对应关系不变。 首先,让我们理解Excel中的行列对应关系。在Excel中,每一行和每一列交叉点形成了一个单元格...
标题“利用OpenOffice对html、word、pdf进行转换”揭示了一个关键知识点,即如何使用开源办公软件OpenOffice处理不同格式的文档,特别是将其相互转换。OpenOffice是一个免费的办公套件,包含类似Microsoft Office的...
在本篇文章中,我们将探讨如何使用 OpenOffice 将各种 Office 文档转换为 PDF 格式,这项技术可以应用于 ASP.NET 平台下。为了实现这项功能,我们需要安装 OpenOffice 和相应的 SDK,同时还需要引入特定的 DLL 文件...
本文将深入探讨如何在Java环境下,利用OpenOffice技术将文档转换为Pdf格式,以解决在Windows 7开发环境中仅支持Office 2007格式的问题。 OpenOffice是一款开源的办公软件套件,它提供了与Microsoft Office兼容的...
OpenOffice提供了一个名为`UNO (Universal Network Objects)`的接口,可以用于控制OpenOffice组件执行各种任务,包括文件转换。通过Java的JACOB库或者Apache POI库,可以实现这个功能。这在批量转换或集成到其他系统...
将"doc", "docx", "xls", "xlsx", "ppt", "pptx",txt等转化为PDF,原理是用到我们的工具OpenOffice。还有PDF转化img图片。具体操作请看我博客"doc", "docx", "xls", "xlsx", "ppt", "pptx",txt。等文件转化为pdf
OpenOffice提供了一个名为UNO(Universal Network Objects)的接口,开发者可以通过这个接口与OpenOffice实例进行通信。在ASP.NET中,我们可以使用Java Bridge或NReco.PdfGenerator等第三方库来调用OpenOffice的UNO...
本篇将重点讲解如何利用OpenOffice API在Java环境中将Word文档转换为PDF文件。 OpenOffice是一个开源的办公套件,它提供了一个称为UNO(Universal Network Objects)的接口,允许开发者通过编程方式与OpenOffice...
标题提到的"office文档通过openoffice或者microsoft多线程转换成pdf文档"涉及到的技术主要包括办公软件API接口利用、多线程处理以及文件转换技术。首先,OpenOffice和Microsoft Office都提供了能够读取和操作Office...
总的来说,`OpenOffice office转pdf jar`是Java开发者利用OpenOffice进行文件格式转换的一种工具,通过它可以在程序中自动化处理Office文档到PDF的转换任务。这个过程涉及到与OpenOffice服务的交互、文件读写以及...
这个工具的强大之处在于它不仅能够创建和编辑这些类型的文档,还支持文件格式的互转,包括将Word、Excel、PowerPoint等Microsoft Office格式的文件转换为PDF。 转换过程主要依赖于OpenOffice的API(应用程序编程...
本篇文章将详细介绍如何利用OpenOffice库在Java环境中将Word、Excel、PowerPoint等Microsoft Office文档转换为PDF格式。 首先,OpenOffice是一款开源的办公套件,它提供了一个称为UNO(Universal Network Objects)...
首先,我们需要理解`openoffice 转PDF工具类`的核心概念。OpenOffice的Java接口主要由JODConverter库提供,这是一个基于LibreOffice或OpenOffice的Java转换工具,支持多种文档格式之间的转换,包括将ODT、DOC、XLS等...
7. **性能优化**:如果需要批量转换大量文件,可以考虑使用多线程技术,或者利用OpenOffice支持的批处理模式,以提高转换效率。 8. **兼容性问题**:虽然OpenOffice对大多数Excel文件格式有良好的支持,但可能会...
总的来说,OpenOffice与JODConverter结合使用,特别是在2.2.2版本之后,为用户提供了强大而全面的文件转换能力,无论你是个人用户还是企业,都可以借助这个组合轻松应对各种格式的文档转换需求,特别是对于那些需要...
在Java环境中,我们可以利用OpenOffice的Java API(称为JODConverter)来实现文件的格式转换。 1. **OpenOffice与JODConverter**: JODConverter是基于OpenOffice的Java库,允许我们通过编程方式调用OpenOffice的...
总的来说,利用OpenOffice和Java可以方便地实现文件转换功能,无论是简单的PDF转换还是更复杂的格式互转。在实际应用中,你可能需要考虑并发转换、错误处理、性能优化等问题,以适应大规模的文件处理需求。