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

简介: 本篇文档实现功能,将word和excel,ppt文档的文件转化成pdf格式的文档 第一步:下载第三方软件OpenOffice软件(不同的操作系统下载不同的版本)    下载地址:http://www.

本篇文档实现功能,将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

 

相关文章
|
11月前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
256 11
|
缓存 算法 Java
Java 实现的局域网管控软件的性能调优
局域网管控软件在企业网络管理中至关重要,但随着网络规模扩大和功能需求增加,其性能可能受影响。文章分析了数据处理效率低下、网络通信延迟和资源占用过高等性能瓶颈,并提出了使用缓存、优化算法、NIO库及合理管理线程池等调优措施,最终通过性能测试验证了优化效果,显著提升了软件性能。
141 1
|
4月前
|
XML 人工智能 Java
java实现PDF 电子签章
本文介绍了使用Java将Word文档转换为PDF并添加水印、签名和盖章的方法。通过Apache POI读取Word内容,结合OpenPDF生成PDF文件,并利用PdfPageEvent接口实现页面水印与签名功能。代码示例清晰展示了转换流程及关键实现细节。
304 0
|
7月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
2月前
|
小程序
公众号如何添加附传Word、Excel、Pdf、PPT文档
公众号里添加一些文档给公众号粉丝下载,比如课件PPT、申请表Word文档、岗位需求Excel表、大赛入围/获奖名单等。公众号本身是不支持直接上传文件的,但我们可以通过附件小程序“间接”上传文件。
527 0
|
5月前
|
人工智能 文字识别 自然语言处理
熊猫 OCR 识别软件下载,支持截图 OCR、PDF 识别、多语言翻译的免费全能工具,熊猫OCR识别
本文介绍了几款实用的图文识别软件,包括熊猫OCR、Umi-OCR和天若OCR_本地版。熊猫OCR功能强大,支持多窗口操作、AI找图找色、OCR识别等;Umi-OCR免费且高效,具备截图OCR、批量处理等功能;天若OCR界面简洁,适合快速文字识别。文章还提供了下载链接及软件特点、界面展示等内容,便于用户根据需求选择合适的工具。
527 36
|
5月前
|
Java 数据安全/隐私保护 计算机视觉
银行转账虚拟生成器app,银行卡转账截图制作软件,java实现截图生成工具【仅供装逼娱乐用途】
本内容提供Java生成自定义图片的示例代码,涵盖基础图像创建、文本添加及保存功能,适合学习2D图形编程。包括教学示例图片生成、文本图层处理和数字水印技术实现方案。
|
5月前
|
XML Java 数据格式
微信不封号无限加人软件,微信一键自动加人软件,java实现批量化加人
本项目包含手机号生成工具与附近人列表展示功能。手机号工具支持批量生成、格式验证及CSV导出,可自定义前缀生成符合中国规则的随机号码。
|
5月前
|
Java
银行转账p图软件,对公转账截图生成器,java版开发银行模拟器【仅供学习参考】
这是一套简单的银行账户管理系统代码,包含`BankAccount`和`BankSystem`两个核心类。`BankAccount`负责单个账户的管理
|
5月前
|
存储 安全 算法
Java 集合面试题 PDF 下载及高频考点解析
本文围绕Java集合面试题展开,详细解析了集合框架的基本概念、常见集合类的特点与应用场景。内容涵盖`ArrayList`与`LinkedList`的区别、`HashSet`与`TreeSet`的对比、`HashMap`与`ConcurrentHashMap`的线程安全性分析等。通过技术方案与应用实例,帮助读者深入理解集合类的特性和使用场景,提升解决实际开发问题的能力。文末附带资源链接,供进一步学习参考。
148 4

热门文章

最新文章

下一篇
oss云网关配置