java实现MsOffice文档向pdf转化之OpenOffice软件

本篇文档实现功能,将word和excel,ppt文档的文件转化成pdf格式的文档

第一步:下载第三方软件OpenOffice软件(不同的操作系统下载不同的版本)

   下载地址:http://www.openoffice.org/

第二步:下载jodconverter压缩包

   下载地址:http://www.artofsolving.com/opensource/jodconverter/

第三步:导入jar包

    

第四步直接调用工具类

MsOffice2Pdf类

 

  1 package com.zdxy.shangxiaofei;
  2
  3 import java.io.File;
  4 import java.io.FileNotFoundException;
  5
  6 import org.artofsolving.jodconverter.OfficeDocumentConverter;
  7 import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
  8 import org.artofsolving.jodconverter.office.OfficeManager;
  9
 10
 11
 12 public class MsOffice2Pdf {
 13
 14     //jodconverter-core-30-beta-4.jar包中的一个对象
 15     private static OfficeManager officeManager;
 16     //服务器上OpenOffice软件安装路径
 17     private static String OFFICE_HOME = "C:\\Program Files (x86)\\OpenOffice 4";
 18     //转化端口
 19     private static int port[] = { 8100 };
 20
 21
 22     /**
 23      * 将MsOffice文档或者txt文档转换成pdf文档的方法
 24     * @Title: convert2PDF
 25     * @Description: TODO(这里用一句话描述这个方法的作用)
 26     * @param inputFile
 27     * @param outputFile
 28     * @throws FileNotFoundException
 29     * @return void    返回类型
 30     * @author 尚晓飞
 31     * @date 2014-8-19 上午11:29:28
 32      */
 33     public static void convert2PDF(String inputFile, String outputFile) throws FileNotFoundException {
 34
 35         //判断输入的文件路径是否存在
 36         File file=new File(inputFile);
 37         boolean flag=file.exists();
 38         if(!flag){
 39             System.out.println("指定转换的文件不存在");
 40             return;
 41         }
 42
 43
 44         String fileName = null;
 45
 46        //如果传进来的txt文件,则需将txt文件转换成odt文件,才能转换成pdf文件
 47         String fileName1 = inputFile.substring(0, inputFile.lastIndexOf("."));
 48         if(inputFile.endsWith("txt")){
 49             String odtFile = fileName1+".odt";
 50             if(new File(odtFile).exists()){
 51                 System.out.println("odt文件存在");
 52                 inputFile = odtFile;
 53             }else{
 54                 FileUtil.copyFile(inputFile, odtFile);
 55                 inputFile = odtFile;
 56             }
 57         }
 58         startService();
 59         System.out.println("进行文档转换:" + inputFile + " --> " + outputFile);
 60         OfficeDocumentConverter converter = new OfficeDocumentConverter(
 61                 officeManager);
 62         converter.convert(new File(inputFile), new File(outputFile));
 63         stopService();
 64         System.out.println();
 65
 66     }
 67
 68     /**
 69      * 打开OpenOffice软件
 70     * @Title: startService
 71     * @Description: TODO(这里用一句话描述这个方法的作用)
 72     * @return void    返回类型
 73     * @author 尚晓飞
 74     * @date 2014-8-19 上午11:11:06
 75      */
 76     public static void startService() {
 77         DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
 78         try {
 79             System.out.println("准备启动openoffice服务....");
 80             configuration.setOfficeHome(OFFICE_HOME);// // 设置OpenOffice.org安装目录
 81             configuration.setPortNumbers(port); // 设置转换端口,默认为8100
 82             configuration.setTaskExecutionTimeout(1000 * 60 * 5L);//设置任务执行超时为5分钟
 83             configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);//设置任务队列超时为24小时
 84
 85             officeManager = configuration.buildOfficeManager();
 86             officeManager.start(); // 启动服务
 87             System.out.println("office转换服务启动成功!");
 88         } catch (Exception ce) {
 89             System.out.println("office转换服务启动失败" + ce);
 90             ce.printStackTrace();
 91         }
 92     }
 93
 94     /**
 95      * 关闭OpenOffice软件
 96     * @Title: stopService
 97     * @Description: TODO(这里用一句话描述这个方法的作用)
 98     * @return void    返回类型
 99     * @author 尚晓飞
100     * @date 2014-8-19 上午11:15:24
101      */
102     public static void stopService() {
103         System.out.println("准备关闭openoffice转换服务....");
104         if (officeManager != null) {
105             officeManager.stop();
106         }
107         System.out.println("关闭openoffice转换服务成功!");
108     }
109
110
111
112     /**
113      * 测试文件转换
114     * @Title: main
115     * @Description: TODO(这里用一句话描述这个方法的作用)
116     * @param args
117     * @return void    返回类型
118     * @author 尚晓飞
119     * @date 2014-8-19 上午11:23:08
120      */
121     public static void main(String[] args) {
122         // TODO Auto-generated method stub
123         String inputFile = "E:\\lantian.ppt";
124         String outputFile = "E:\\4.pdf";
125
126         try {
127             convert2PDF(inputFile, outputFile);
128         } catch (FileNotFoundException e) {
129             // TODO Auto-generated catch block
130             e.printStackTrace();
131         }
132     }
133 }

View Code

 

 

 FileUtil类

 1 package com.zdxy.shangxiaofei;
 2
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8
 9 public class FileUtil {
10
11     /**
12      * 将txt文件转换成odt文件
13     * @Title: copyFile
14     * @Description: TODO(这里用一句话描述这个方法的作用)
15     * @param inputFile
16     * @param outputFile
17     * @throws FileNotFoundException
18     * @return void    返回类型
19     * @author 尚晓飞
20     * @date 2014-8-19 上午11:18:50
21      */
22     public static void copyFile(String inputFile, String outputFile)
23             throws FileNotFoundException {
24         File sFile = new File(inputFile);
25         File tFile = new File(outputFile);
26         FileInputStream fis = new FileInputStream(sFile);
27         FileOutputStream fos = new FileOutputStream(tFile);
28         int temp = 0;
29         try {
30             while ((temp = fis.read()) != -1) {
31                 fos.write(temp);
32             }
33         } catch (IOException e) {
34             e.printStackTrace();
35         } finally {
36             try {
37                 fis.close();
38                 fos.close();
39             } catch (IOException e) {
40                 e.printStackTrace();
41             }
42         }
43     }
44
45 }

View Code

 

时间: 2024-10-30 11:53:19

java实现MsOffice文档向pdf转化之OpenOffice软件的相关文章

java实现MsOffice文档向pdf文档转化

本篇文档实现功能,将word和ppt文档的文件转化成pdf格式的文档 应用到jacob   第一步:下载压缩包 (1)jacob官网下载jacob压缩包 (2)网址:http://sourceforge.net/projects/jacob-project/     第二步:配置环境并导入jar包  (1)将下载好的压缩包解压  (2)将jacob.jar包导入项目中  (3)将jacob-1.18-M2-x64.dll和jacob-1.18-M2-x86.dll文件复制粘贴到jdk安装目录bi

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

1.首先我们需要找到可以把office转换成pdf的方法,查找资料发现有openoffice这一软件可以把office转换成pdf,这一软件先下载下来,然后记住自己安装的在那个位置.然后在cmd环境下进入安装目录的program目录,输入打开openoffice的命令:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard 输入完成之后在任务管理器可以看见soffice.b

OpenOffice.org开源办公套件将各类文档转为PDF

最近在项目中遇到一个需求,是要将各类文档转换为PDF.这应该是个很常见的工作,而且我也只需要支持MS Word,Excel,PowerPoint等常见的文档格式就行了.于是有朋友就建议了,可以使用MS Office转嘛.当然也可以使用其他方法,例如装一些PDF打印机,把文档打印成pdf文件.不过这些做法在"授权"方面似乎都有些问题.当然,我也找了一些商业解决方案(如Aspose)保底,咋看之下它的授权方式也并不算贵.不过现在看来,OpenOffice.org已经能够满足我的需求了.如果

word2pdf-用JAVA如何将MS Word文档转换为PDF文档

问题描述 用JAVA如何将MS Word文档转换为PDF文档 我现在需要在项目中实现将word转换为pdf文档的功能. 之前在网上查过一些资料,主要就是通过调用openoffice服务的方式实现, 而我需要在不借助系统软件或服务的情况下,就能将word文档转换为pdf格式, 我希望这个转换功能能作为一个独立的组件,在任何系统环境下都能使用. 网上推荐使用 POI + iText 的方法,这个方法也许可行,但是要达到完美效果可能工作量很大. 在这里请教大家,希望有经验的人能给我一点建议!

JSP生成WORD文档,EXCEL文档及PDF文档的方法_JSP编程

本文实例讲述了JSP生成WORD文档,EXCEL文档及PDF文档的方法.分享给大家供大家参考,具体如下: 在web-oa系统中,公文管理好象不可或缺,有时需要从数据库中查询一些数据以某种格式输出来,并以word文档的形式展现,有时许多word文档保存到数据库中的某个表的Blob字段里,服务器再把保存在Blob字段中的图片文件展现给用户.通过网上查找发现很少有关于此类的文章,现在整理起来供大家参考. 1 在client端直接生成word文档 在jsp页面上生成word文档非常简单,只需把conte

怎么用java实现doc文档模板插入数据和表格并导出?急急急,在线等

问题描述 怎么用java实现doc文档模板插入数据和表格并导出?急急急,在线等 我要实现一个模板导出功能,模板包含标题和文字内容,模板中间还有一个表格,和结尾文字.要实现动态添加标题文字,其中表格中内容部分动态添加数据,可能会有多种模板,区别是表格样子不同,都要添加内容,最后整个导出doc文件.有没有demo?各位大神?谢谢了先.下面图片中红色框住部分是要动态添加数据的地方,其他地方是模板原型. 解决方案 下面是我实现的方式,用poi工具. /** * * @param filePath 源文件

研究 Java 中 XML 文档模型的特性和性能

xml|性能 Java 中的 XML: 文档模型,第一部分:性能 研究 Java 中 XML 文档模型的特性和性能 文档选项 将此页作为电子邮件发送 最新推荐 Java 应用开发源动力 - 下载免费软件,快速启动开发 级别: 初级 Dennis M. Sosnoski, 总裁, Sosnoski Software Solutions, Inc. 2001 年 9 月 01 日 在本文中,Java 顾问 Dennis Sosnoski 比较几个 Java 文档模型的性能和功能.当选择模型时,无法做

用Word 2010轻松将word文档转换为PDF文档

用Word2010可以轻松的将Word文档转换为PDF格式文档.方法如下: 1.运行Word2010,打开所要转换的文档. 2.点击文件--共享--文件类型,选择"创建文档,进行转换即可.         注:更多请关注电脑教程栏目,三联电脑办公群:189034526欢迎你的加入

Word文档打印PDF文件方法

  很多朋友可能对PDF还是束手无策,不知道怎么使用.其实,因为Word文档的使用几率比PDF文档还要高些,所以大家对Word比较熟悉.想要将PDF的文档放在Word文档中,并将其打印,这个方法可行吗?小编肯定地告诉大家可以的.下面就来看看Word文档打印PDF文档的方法. 1.双击Acrobat9pro.exe文件,安装Acrobat9pro软件,进入下一步. Acrobat9pro 2.打开控制面板->硬件和声音->设备和打印机,出现Adobe PDF打印机,进入下一步. 打印机 3.选择