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

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

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

第二步:下载jodconverter压缩包

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

第三步:导入jar包

    

第四步直接调用工具类

MsOffice2Pdf类

 package com.zdxy.shangxiaofei;

 import java.io.File;
import java.io.FileNotFoundException; import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager; public class MsOffice2Pdf { //jodconverter-core-30-beta-4.jar包中的一个对象
private static OfficeManager officeManager;
//服务器上OpenOffice软件安装路径
private static String OFFICE_HOME = "C:\\Program Files (x86)\\OpenOffice 4";
//转化端口
private static int port[] = { 8100 }; /**
* 将MsOffice文档或者txt文档转换成pdf文档的方法
* @Title: convert2PDF
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param inputFile
* @param outputFile
* @throws FileNotFoundException
* @return void 返回类型
* @author 尚晓飞
* @date 2014-8-19 上午11:29:28
*/
public static void convert2PDF(String inputFile, String outputFile) throws FileNotFoundException { //判断输入的文件路径是否存在
File file=new File(inputFile);
boolean flag=file.exists();
if(!flag){
System.out.println("指定转换的文件不存在");
return;
} String fileName = null; //如果传进来的txt文件,则需将txt文件转换成odt文件,才能转换成pdf文件
String fileName1 = inputFile.substring(0, inputFile.lastIndexOf("."));
if(inputFile.endsWith("txt")){
String odtFile = fileName1+".odt";
if(new File(odtFile).exists()){
System.out.println("odt文件存在");
inputFile = odtFile;
}else{
FileUtil.copyFile(inputFile, odtFile);
inputFile = odtFile;
}
}
startService();
System.out.println("进行文档转换:" + inputFile + " --> " + outputFile);
OfficeDocumentConverter converter = new OfficeDocumentConverter(
officeManager);
converter.convert(new File(inputFile), new File(outputFile));
stopService();
System.out.println(); } /**
* 打开OpenOffice软件
* @Title: startService
* @Description: TODO(这里用一句话描述这个方法的作用)
* @return void 返回类型
* @author 尚晓飞
* @date 2014-8-19 上午11:11:06
*/
public static void startService() {
DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
try {
System.out.println("准备启动openoffice服务....");
configuration.setOfficeHome(OFFICE_HOME);// // 设置OpenOffice.org安装目录
configuration.setPortNumbers(port); // 设置转换端口,默认为8100
configuration.setTaskExecutionTimeout(1000 * 60 * 5L);//设置任务执行超时为5分钟
configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);//设置任务队列超时为24小时 officeManager = configuration.buildOfficeManager();
officeManager.start(); // 启动服务
System.out.println("office转换服务启动成功!");
} catch (Exception ce) {
System.out.println("office转换服务启动失败" + ce);
ce.printStackTrace();
}
} /**
* 关闭OpenOffice软件
* @Title: stopService
* @Description: TODO(这里用一句话描述这个方法的作用)
* @return void 返回类型
* @author 尚晓飞
* @date 2014-8-19 上午11:15:24
*/
public static void stopService() {
System.out.println("准备关闭openoffice转换服务....");
if (officeManager != null) {
officeManager.stop();
}
System.out.println("关闭openoffice转换服务成功!");
} /**
* 测试文件转换
* @Title: main
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param args
* @return void 返回类型
* @author 尚晓飞
* @date 2014-8-19 上午11:23:08
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String inputFile = "E:\\lantian.ppt";
String outputFile = "E:\\4.pdf"; try {
convert2PDF(inputFile, outputFile);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

FileUtil类

 package com.zdxy.shangxiaofei;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class FileUtil { /**
* 将txt文件转换成odt文件
* @Title: copyFile
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param inputFile
* @param outputFile
* @throws FileNotFoundException
* @return void 返回类型
* @author 尚晓飞
* @date 2014-8-19 上午11:18:50
*/
public static void copyFile(String inputFile, String outputFile)
throws FileNotFoundException {
File sFile = new File(inputFile);
File tFile = new File(outputFile);
FileInputStream fis = new FileInputStream(sFile);
FileOutputStream fos = new FileOutputStream(tFile);
int temp = 0;
try {
while ((temp = fis.read()) != -1) {
fos.write(temp);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }

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

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

    本篇文档实现功能,将word和ppt文档的文件转化成pdf格式的文档 应用到jacob 第一步:下载压缩包 (1)jacob官网下载jacob压缩包 (2)网址:http://sourceforge. ...

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

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  3. C#实现MS-Office文档转Pdf(Word、Execel、PowerPoint、Visio、Project)

    using System; using Microsoft.Office.Core; namespace Office { class Util { private Util() { } /// &l ...

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

    第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...

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

    https://yq.aliyun.com/ziliao/1768?spm=5176.8246799.blogcont.24.1PxYoX 摘要: 本文讲的是Java实现web在线预览office文档 ...

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

    在平台上,需要把文档直接浏览而非下载,实现方法是先把文档转为PDF文件, 但在linux系统中确实汉字字库,所以转换失败,以下是解决方法 后面正式服务器也要添加字库,不然会转换出乱码文件,处理步骤如下 ...

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

    最近公司要做office的文档,搜集了几种office文档转pdf的方式,简单的做下总结 我主要尝试了三种方式:openoffice,aspose,jacob 对他们进行了大文件,小文件,在linux ...

  8. word文档转pdf,支持.doc和.docx,另附抽取pdf指定页数的方法

    公司有个需求,需要将word转成pdf并且抽取首页用以展示,word文档有需要兼容.doc和.docx两种文档格式.其中.docx通过poi直接就可以将word转成pdf,.doc则无法这样实现,上网 ...

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

    http://blog.zhaojie.me/2010/05/convert-document-to-pdf-via-openoffice.html ————————————————————————— ...

随机推荐

  1. G.Finding the Radius for an Inserted Circle 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛

    地址:https://nanti.jisuanke.com/t/17314 题目: Three circles C_{a}C​a​​, C_{b}C​b​​, and C_{c}C​c​​, all ...

  2. cocos2dx 3.x 拼图小游戏

    .h #define IMAGE_MAX 2 //图片的个数.. //图片结构体 属性 struct IMAGE_DATA { cocos2d::Sprite *m_pImage; bool m_bO ...

  3. Python 字符串转换为日期

    应用程序接受字符串格式的输入,但是你想将它们转换为datetime 对象以便在上面执行非字符串操作. 使用Python 的标准模块datetime 可以很容易的解决这个问题.比如: >>& ...

  4. SQL: 拼接列

    1. 因工作需要,需把两列(id,created_by)拼接成一列,结果很有意思,前5个值都是null. 2.解决方法:null加减乘除任何值都等于null,所以使用isnull函数先处理下列的值再拼 ...

  5. SQL学习笔记四(补充-1-1)之MySQL单表查询补充部分:SQL逻辑查询语句执行顺序

    阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SELECT语句关键字的定义顺序 SELE ...

  6. 期末总结20135320赵瀚青LINUX内核分析与设计期末总结

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 对LINUX内核分析与设计这 ...

  7. Dubbo 只注册,只订阅

    只注册场景: 某一个服务,被注册中心的一些服务依赖,但是该服务不提供给消费者调用,这个时候使用只注册,注册到注册中心,注册中心内部服务可以调用该服务,但是消费者不可以.(这个服务是被调用方) 只订阅场 ...

  8. [bug report] 当springboot报错 找不到类 javax.xml.bind.JAXBException

    <!--以下四个依赖均是javax.xml.bind.JAXBException的依赖 在java6/7/8默认支持,java9不再支持--> <dependency> < ...

  9. IDEA上面如何添加创建的文件类型

    首先在IDEA --> new 一个文件的时候 以 创建vue文件为例子,来添加vue文件类型文件 选项 edit file templates 添加 这样就OK了 转载需注明出处,谢谢! au ...

  10. POJ 2337 Catenyms

    http://poj.org/problem?id=2337 题意: 判断给出的单词能否首尾相连,输出字典序最小的欧拉路径. 思路: 因为要按字典序大小输出路径,所以先将字符串排序,这样加边的时候就会 ...