java实现MsOffice文档向pdf转化之OpenOffice软件
本篇文档实现功能,将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软件的更多相关文章
- java实现MsOffice文档向pdf文档转化
本篇文档实现功能,将word和ppt文档的文件转化成pdf格式的文档 应用到jacob 第一步:下载压缩包 (1)jacob官网下载jacob压缩包 (2)网址:http://sourceforge. ...
- Java实现office文档与pdf文档的在线预览功能
最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...
- C#实现MS-Office文档转Pdf(Word、Execel、PowerPoint、Visio、Project)
using System; using Microsoft.Office.Core; namespace Office { class Util { private Util() { } /// &l ...
- java将office文档pdf文档转换成swf文件在线预览
第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...
- Java实现web在线预览office文档与pdf文档实例
https://yq.aliyun.com/ziliao/1768?spm=5176.8246799.blogcont.24.1PxYoX 摘要: 本文讲的是Java实现web在线预览office文档 ...
- Java环境中,word文档转PDF直接打开浏览而非下载
在平台上,需要把文档直接浏览而非下载,实现方法是先把文档转为PDF文件, 但在linux系统中确实汉字字库,所以转换失败,以下是解决方法 后面正式服务器也要添加字库,不然会转换出乱码文件,处理步骤如下 ...
- Java中几种office文档转pdf的方式
最近公司要做office的文档,搜集了几种office文档转pdf的方式,简单的做下总结 我主要尝试了三种方式:openoffice,aspose,jacob 对他们进行了大文件,小文件,在linux ...
- word文档转pdf,支持.doc和.docx,另附抽取pdf指定页数的方法
公司有个需求,需要将word转成pdf并且抽取首页用以展示,word文档有需要兼容.doc和.docx两种文档格式.其中.docx通过poi直接就可以将word转成pdf,.doc则无法这样实现,上网 ...
- 使用OpenOffice.org将各类文档转为PDF
http://blog.zhaojie.me/2010/05/convert-document-to-pdf-via-openoffice.html ————————————————————————— ...
随机推荐
- Android实践项目汇报
Android实践项目:推箱子 推箱子是一款来自日本的古老游戏,其设计目的是训练人的逻辑思维能力.游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置.这就要求玩家巧妙的运用有限的空间和通道 ...
- 开源工具-Json 解析器 Jackson 的使用
Json已经成为当前服务器与 WEB 应用之间数据传输的公认标准.Java 中常见的 Json 类库有 Gson.JSON-lib 和 Jackson 等.相比于其他的解析工具,Jackson 简单易 ...
- DataContract with Json.Net
https://www.newtonsoft.com/json/help/html/DataContractAndDataMember.htm 如果class使用了DataContract,name没 ...
- Windows系统下解决“telnet不是外部或内部命令”的问题
在学习Node.js时,需要使用Telnet连接Node TCP服务器,在命令行中运行: $ telnet 127.0.0.1 9000 时,命令行工具会报错:“telnet不是外部或内部命令”. 这 ...
- 使用IDEA2017创建java web +maven项目
1.首先,提前准备的东西:我使用的是IDEA2017,tomcat7,jdk1.:请将这些软件安装完成,环境变量配置完成,如何配置以及安装我就不复述了,百度上一堆一堆的,比我知道的详细多了. 2.下面 ...
- 使用javascript模拟常见数据结构(三)
六.字典和散列表 我们已经知道,集合表示一组互不相同的元素(不重复元素).在字典中,存储的是键值对,其中键值是用来查询特定的元素的.字典和集合是很相似的,集合采用[值,值]的方式存储,而字典则是以[键 ...
- BZOJ 3123 【SDOI2013】 森林
题目链接:森林 这道题想法很显然.既然只有加边而没有删边,那么每次启发式合并就可以了.查询路径\(k\)小似乎需要主席树,那么把主席树和倍增表一起暴力重构就好了. 然后发现这样的空间复杂度是\(O(n ...
- [原][osgearth]earth文件加载道路一初步看见模型道路
时间是2017年2月5日17:16:32 由于OE2.9还没有发布,但是我又急于使用OE的道路. 所以,我先编译了正在github上调试中的OE2.9 github网址是:https://github ...
- Oracle10g客户端链接服务端配置
Oracle10g客户端工具plsql链接服务端配置 Oracle10g客户端工具比如plsql,在网络中链接服务端问题比较多中国菜刀,经常出现很多莫名其妙的问题.实际上不是plsql的配置,问题还是 ...
- JavaScript权威指南--类和模块
知识要点 每个javascript对象都是一个属性集合,相互之间没有任何联系.在javascript中也可以定义对象的类,让每个对象都共享某些属性,这种“共享”的特性是非常有用的.类的成员或实例都包含 ...