java 使用openoffice 转换文档,成.pdf,实现在线预览效果

1. 下载 openoffice 地址

https://pan.baidu.com/s/1dfpoG6zlawoW1pqpDvBL0A 密码: v4ej

如果上面的地址无法访问请访问这个地址:下载地址如下:http://www.openoffice.org/

2. jodconverter-2.2.2.zip 下载地址:
http://sourceforge.net/projects/jodconverter/files/JODConverter/

3.  JODConverter 下的jar包访问项目lib包中。

4.  使用openoffice的工具类

package com.rdkl.utils;

import java.io.File;

import org.apache.commons.io.FilenameUtils;
import org.apache.log4j.Logger;
import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.ExternalOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeException;
import org.artofsolving.jodconverter.office.OfficeManager;

import com.ddyun.imooc.common.SysConfigManager;

public class PdfUtils {
	private static final Logger logger = Logger.getLogger(PdfUtils.class
			.getName());
	@SuppressWarnings("static-access")
	private static String officeHome = "这里写的是你的openoffice的安装地址";        @SuppressWarnings("static-access")
	private static int port = "这里的内容是根据你的系统选择不同的端口号,windows系统的端口号是8100";
	private static OfficeManager officeManager;

        // 尝试连接已存在的服务器
	private static boolean reconnect(){
		try {               // 尝试连接openoffice的已存在的服务器
			ExternalOfficeManagerConfiguration externalProcessOfficeManager = new ExternalOfficeManagerConfiguration();
			externalProcessOfficeManager.setConnectOnStart(true);
			externalProcessOfficeManager.setPortNumber(8100);
			officeManager = externalProcessOfficeManager.buildOfficeManager();
			officeManager.start();
			return true;
		} catch (OfficeException e) {
			e.printStackTrace();
			return false;
		}

	}
	// 开启新的openoffice的进程
	private static void start() {
		logger.debug("启动OpenOffice服务");
		try {
			DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
			configuration.setOfficeHome(officeHome);// 安装地址
			configuration.setPortNumbers(port);// 端口号
			configuration.setTaskExecutionTimeout(1000 * 60 * 5);// 设置任务执行超时为5分钟
			configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24);// 设置任务队列超时为24小时
			officeManager = configuration.buildOfficeManager();
			officeManager.start(); // 启动服务
		} catch (Exception e) {
			logger.error("启动OpenOffice服务出错" + e);
		}
	}
        // 使用完需要关闭该进程
	private static void stop() {
		logger.debug("关闭OpenOffice服务");
		try {
			if (officeManager != null)
				officeManager.stop();
		} catch (Exception e) {
			logger.error("关闭OpenOffice服务出错" + e);
		}
	}

	public static File convertToPdf(String input) {
		File inputFile = null;
		File outFile = null;
		try {              // 如果已存在的服务不能连接或者不存在服务,那么开启新的服务    
			if(!reconnect()){
				start();// 开启服务
			}              // filenameUtils是Apache对java io的封装。 FilenameUtils.separatorsToSystem:转换分隔符为当前系统分隔符 / FilenameUtils.getFullPath:获取文件的完整目录              // FilenameUtils.getBaseName:取出文件目录和后缀名的文件名
			String output = FilenameUtils.separatorsToSystem(FilenameUtils.getFullPath(input) + FilenameUtils.getBaseName(input) + ".pdf");
			inputFile = new File(input);
			outFile = new File(output);
			logger.info("开始转换文档:" + input + "=>" + output);
			OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);
			converter.convert(inputFile,outFile); // 转换文档
		} catch (Exception e) {
			logger.error("转换文档出错" + e);
			outFile = null;
		}finally{
			logger.info("结束转换文档");
			stop();
		}
		return outFile;
	}

     // 测试工具类是否成功
	public static void main(String[] args) {
	   //PdfUtils.convertToPdf("E:/test.ppt");
	   File sf = new File("E:/test.ppt");
	   System.out.println(sf.getPath());
	}

}

  

原文地址:https://www.cnblogs.com/bb1008/p/10019576.html

时间: 2024-10-12 17:13:34

java 使用openoffice 转换文档,成.pdf,实现在线预览效果的相关文章

java将office文档pdf文档转换成swf文件在线预览

java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org   openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文本文档),impress(演示文稿),Calc(电子表格),Draw(绘图),Math(公式),base(数据库) 笔者下载的是openoffice.org 3.3.0.下载完直接安装即可.      但是,我们还需要启动openof

word转pdf swf 在线预览

来源:http://www.cnblogs.com/wuhenke/archive/2010/08/01/1789750.html 之前在项目中研究使用了一套word转PDF,然后将PDF转成SWF的方法,最终实现SWF的在线浏览.自己还有些洋洋得意,昨晚在浏览网页搜集资料时发现:原来在2004年左右就有Flash Paper,已经很容易地实现上面的过程. Flash Paper支持Office文档(.doc,.xls,.ppt)直接转换为PDF或SWF,速度很快,效果较好.可惜,Flash P

Java实现web在线预览office文档与pdf文档实例

https://yq.aliyun.com/ziliao/1768?spm=5176.8246799.blogcont.24.1PxYoX 摘要: 本文讲的是Java实现web在线预览office文档与pdf文档实例, 1.首先我们需要找到可以把office转换成pdf的方法,查找资料发现有openoffice这一软件可以把office转换成pdf,这一软件先下载下来,然后记住自己安装的在那个位置.然后在cmd环境下进入安装目录的program目 云计算 云服务器ECS 大数据 建站 备案 文档

openoffice+jquery.media.js实现文档在线预览

1.功能: 实现Windows环境下文档在线预览功能,支持.doc..docx..xls..xlsx..ppt..pptx..pdf格式的文档,对IE浏览器不太兼容.如要实现Linux环境下文档在线预览功能,改变相应配置和代码,要安装Linux版的OpenOffice. 2.所需组件: (1)OpenOffice4.0.1 : 下载地址:http://pan.baidu.com/s/1hsQkhzm (2)jquery.media.js: 下载地址:http://pan.baidu.com/s/

文档在线预览的实现

最近在研究企业文档管理,这个是基本上所有企业都需要的软件,当然也是有很多种解决方案.对于企业文档来说,最基本的需求就是独立存储,共享.这种需求只需要建立一个Windows共享文件夹或者架一个Samba服务器即可实现,无法做复杂的权限管理,统计等.另一种方案就是架一个Web应用,比如SharePoint,就可以实现. 既然是WEB应用,进一步的需求是能够在线查看文档,根据用户需求可能不允许下载,不允许打印文档.这一点微软的高级解决方案是使用RMS,能够设置每个用户的打开权限,是否打印等,要求必须是

关于在线预览word,excel,ppt,pdf的需求处理方法。

参考文档:http://www.cnblogs.com/wolf-sun/p/3574278.html 我选用的方案:先用office com组件生成pdf,然后使用pdf.js在线预览pdf文档.在自己写demo的过程下遇到如下两个问题,在此记录一下,希望能帮助到遇到同类问题的兄弟姐妹们.   1.在服务器上安装Office Plus 2010后,使用其com组件生成pdf时出现权限错误 System.UnauthorizedAccessException: Retrieving the CO

实现在线预览PDF的几种解决方案

原文:实现在线预览PDF的几种解决方案 因客户需要实现PDF的预览处理,在网上找了一些PDF在线预览的解决方案,有的用PDFJS的在线预览方式,有的使用PDFObject的嵌入式显示,有的通过转换JPG/PNG方式实现间接显示的方式,开始是想通过简单的方式,能够使用JS插件实现预览最好,可是在线预览总是有一些不足,如不同浏览器的兼容问题,甚至不同的手机平台中展示的效果也不一样,不过最好还是采用了间接的方式,把PDF转换为图片展示效果,达到客户的要求. 1.在线实现预览的方式 一开始我还是很倾向使

Java实现文档在线预览(openoffice+swfTools+FlexPaper)

      文档在线预览在项目中早就完成了,后来又经过了一次优化.但是一直都没时间去记录遇到的问题,文档在线预览的详细步骤可以参考http://blog.csdn.net/u013614451/article/details/24261503,感谢博主写了这么好的文章帮助我完成了项目中主要的模块.下面是文档转换的工具类DocConvert.java,并标注出我修改的部分. package com.he.util; import java.io.BufferedInputStream; impor

Java实现office文档与pdf文档的在线预览功能

最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完.查找资料发现我们要实现的过程就是把office转换成pdf,当然pdf就不用转换了.然后在pdf转换为swf文件,在浏览器实现预览swf文件.整个过程就是这样,看起来很简单,实际操作起来会出现各种问题.下面我就把自己写的这一小功能记录下来. 1.首先我们需要找到可以把office转换成pdf的方法