`
zcz123
  • 浏览: 157512 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类

利用openoffice进行各种格式转换为PDF

 
阅读更多

参考: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的配置


 

  • 大小: 53.1 KB
分享到:
评论

相关推荐

    openoffice的C#应用各种文档格式转换pdf

    本教程将详细讲解如何利用OpenOffice的API和C#编程语言来实现Word、Excel和PowerPoint文档转换为PDF格式。 一、OpenOffice的API简介 OpenOffice提供了一套名为UNO(Universal Network Objects)的接口,允许开发者...

    Java用OpenOffice将office转换为PDF

    Java使用OpenOffice转换Office文档为PDF是一种常见的技术需求,尤其在企业级应用中,为了保持一致性和跨平台兼容性,可能会需要将Word、Excel或PowerPoint文档转换为PDF格式。以下将详细介绍如何在Java环境中利用...

    Openoffice转换多列EXCEL为PDF行列对应解决方法.rar

    在OpenOffice中将多列Excel转换为PDF时,可能会遇到行与列对应不正确的问题,尤其是在数据排列复杂或格式设置不当时。以下是一份详细的解决方法,旨在帮助用户正确地进行转换,确保PDF中的数据保持原始Excel文件的...

    Openoffice转换多列EXCEL为PDF行列对应解决方法

    在这个场景下,我们需要讨论的是如何利用OpenOffice将含有多列数据的Excel文件正确地转换成PDF,保持行列对应关系不变。 首先,让我们理解Excel中的行列对应关系。在Excel中,每一行和每一列交叉点形成了一个单元格...

    利用OpenOffice对html、word、pdf进行转换

    标题“利用OpenOffice对html、word、pdf进行转换”揭示了一个关键知识点,即如何使用开源办公软件OpenOffice处理不同格式的文档,特别是将其相互转换。OpenOffice是一个免费的办公套件,包含类似Microsoft Office的...

    ASP.NET利用OpenOffice转换文件至PDF

    在本篇文章中,我们将探讨如何使用 OpenOffice 将各种 Office 文档转换为 PDF 格式,这项技术可以应用于 ASP.NET 平台下。为了实现这项功能,我们需要安装 OpenOffice 和相应的 SDK,同时还需要引入特定的 DLL 文件...

    OpenOffice转换成Pdf

    本文将深入探讨如何在Java环境下,利用OpenOffice技术将文档转换为Pdf格式,以解决在Windows 7开发环境中仅支持Office 2007格式的问题。 OpenOffice是一款开源的办公软件套件,它提供了与Microsoft Office兼容的...

    OpenOffice转换Office文档为PDF、HTML

    OpenOffice提供了一个名为`UNO (Universal Network Objects)`的接口,可以用于控制OpenOffice组件执行各种任务,包括文件转换。通过Java的JACOB库或者Apache POI库,可以实现这个功能。这在批量转换或集成到其他系统...

    利用openoffice将文档转化为PDF

    将"doc", "docx", "xls", "xlsx", "ppt", "pptx",txt等转化为PDF,原理是用到我们的工具OpenOffice。还有PDF转化img图片。具体操作请看我博客"doc", "docx", "xls", "xlsx", "ppt", "pptx",txt。等文件转化为pdf

    asp.net利用OpenOffice转换WORD/EXCEL/PDF为PDF,加水印源码

    OpenOffice提供了一个名为UNO(Universal Network Objects)的接口,开发者可以通过这个接口与OpenOffice实例进行通信。在ASP.NET中,我们可以使用Java Bridge或NReco.PdfGenerator等第三方库来调用OpenOffice的UNO...

    Java使用OpenOffice将word转换为pdf文件

    本篇将重点讲解如何利用OpenOffice API在Java环境中将Word文档转换为PDF文件。 OpenOffice是一个开源的办公套件,它提供了一个称为UNO(Universal Network Objects)的接口,允许开发者通过编程方式与OpenOffice...

    office文档通过openoffice或者microsoft多线程转换成pdf文档并通过pdfjs显示

    标题提到的"office文档通过openoffice或者microsoft多线程转换成pdf文档"涉及到的技术主要包括办公软件API接口利用、多线程处理以及文件转换技术。首先,OpenOffice和Microsoft Office都提供了能够读取和操作Office...

    OpenOffice office转pdf需要的jar

    总的来说,`OpenOffice office转pdf jar`是Java开发者利用OpenOffice进行文件格式转换的一种工具,通过它可以在程序中自动化处理Office文档到PDF的转换任务。这个过程涉及到与OpenOffice服务的交互、文件读写以及...

    OpenOffice实现word、excel、ppt等文本文件转换pdf

    这个工具的强大之处在于它不仅能够创建和编辑这些类型的文档,还支持文件格式的互转,包括将Word、Excel、PowerPoint等Microsoft Office格式的文件转换为PDF。 转换过程主要依赖于OpenOffice的API(应用程序编程...

    Java利用OpenOffice将word等office文档转换成PDF(附件在最后)

    本篇文章将详细介绍如何利用OpenOffice库在Java环境中将Word、Excel、PowerPoint等Microsoft Office文档转换为PDF格式。 首先,OpenOffice是一款开源的办公套件,它提供了一个称为UNO(Universal Network Objects)...

    使用openoffice转换PDF工具类及所有jar包

    首先,我们需要理解`openoffice 转PDF工具类`的核心概念。OpenOffice的Java接口主要由JODConverter库提供,这是一个基于LibreOffice或OpenOffice的Java转换工具,支持多种文档格式之间的转换,包括将ODT、DOC、XLS等...

    java使用OpenOffice实现的Excel转pfd

    7. **性能优化**:如果需要批量转换大量文件,可以考虑使用多线程技术,或者利用OpenOffice支持的批处理模式,以提高转换效率。 8. **兼容性问题**:虽然OpenOffice对大多数Excel文件格式有良好的支持,但可能会...

    openoffice转pdf所需jodconverter-2.2.2

    总的来说,OpenOffice与JODConverter结合使用,特别是在2.2.2版本之后,为用户提供了强大而全面的文件转换能力,无论你是个人用户还是企业,都可以借助这个组合轻松应对各种格式的文档转换需求,特别是对于那些需要...

    OpenOffice 实现JPG.DOC转PDF转SWF在线预览(Java版)

    在Java环境中,我们可以利用OpenOffice的Java API(称为JODConverter)来实现文件的格式转换。 1. **OpenOffice与JODConverter**: JODConverter是基于OpenOffice的Java库,允许我们通过编程方式调用OpenOffice的...

    OPenOffice 实现用Java实现文件转换PDF和SWF

    总的来说,利用OpenOffice和Java可以方便地实现文件转换功能,无论是简单的PDF转换还是更复杂的格式互转。在实际应用中,你可能需要考虑并发转换、错误处理、性能优化等问题,以适应大规模的文件处理需求。

Global site tag (gtag.js) - Google Analytics