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 }

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 }

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

时间: 2024-08-14 23:21:56

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

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

本篇文档实现功能,将word文档的文件转化成pdf格式的文档 第一步:下载压缩包 (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安装目录bin目录下,jdk安装目录jre的bin目

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

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

Java 将Word文档转换为PDF

前言 本文将介绍如何使用免费Java Word组件Free Spire.Doc for Java在Java应用程序中将Word文档转换到PDF格式.Free Spire.Doc for Java在转换过程中能够识别中文字符并支持丰富的word文档元素:文本框.页眉.页脚.项目符号和编号.表格.文本.超链接.水印.图片.形状等. Free Spire.Doc for Java概述 Free Spire.Doc for Java 是由E-iceblue公司开发的一个免费的Java Word API,

JAVA将 Word 文档转换为 PDF

技术来源 下载spire.doc-2.2.0.jar地址 帮助文档 POM引入Jar(本人把jar放在项目的src/main/resources/lib目录下): <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.doc</artifactId> <version>2.2.0</version> <scop

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 大数据 建站 备案 文档

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

Java环境中,word文档转PDF直接打开浏览而非下载

在平台上,需要把文档直接浏览而非下载,实现方法是先把文档转为PDF文件, 但在linux系统中确实汉字字库,所以转换失败,以下是解决方法 后面正式服务器也要添加字库,不然会转换出乱码文件,处理步骤如下:1.将Windows上字体文件 C:\Windows\Fonts目录,复制到服务器的/usr/share/fonts目录2.运行sudo fc-cache -f -v命令刷新字体缓存3.重启服务器 但正式服务器转换文件出错,tomcat没报错误,显示程序卡住,查错方法写个demo跑, 报“Can'

Java中几种office文档转pdf的方式

最近公司要做office的文档,搜集了几种office文档转pdf的方式,简单的做下总结 我主要尝试了三种方式:openoffice,aspose,jacob 对他们进行了大文件,小文件,在linux,在windows,转换txt,excel,word,ppt的测试. 一.aspose:这种方式在目前来看应该是最好的,无论是转换的速度还是成功的概率,还支持的文件类型. (1)使用: 这种方式使用很简单,引入jar包就可以直接使用 代码: 源码,jar包在最后提供 package aspose;

使用OpenOffice.org将各类文档转为PDF

http://blog.zhaojie.me/2010/05/convert-document-to-pdf-via-openoffice.html —————————————————————————————————————————————————————————— 使用OpenOffice.org将各类文档转为PDF 2010-05-27 12:37 by 老赵, 25682 visits 最近在项目中遇到一个需求,是要将各类文档转换为PDF.这应该是个很常见的工作,而且我也只需要支持MS W