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

 

相关文章
|
2月前
|
缓存 算法 Java
Java 实现的局域网管控软件的性能调优
局域网管控软件在企业网络管理中至关重要,但随着网络规模扩大和功能需求增加,其性能可能受影响。文章分析了数据处理效率低下、网络通信延迟和资源占用过高等性能瓶颈,并提出了使用缓存、优化算法、NIO库及合理管理线程池等调优措施,最终通过性能测试验证了优化效果,显著提升了软件性能。
41 1
|
1月前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
124 5
|
4月前
|
XML 数据采集 存储
使用Java和XPath在XML文档中精准定位数据
在数据驱动的时代,从复杂结构中精确提取信息至关重要。XML被广泛用于数据存储与传输,而XPath则能高效地在这些文档中导航和提取数据。本文深入探讨如何使用Java和XPath精准定位XML文档中的数据,并通过小红书的实际案例进行分析。首先介绍了XML及其挑战,接着阐述了XPath的优势。然后,提出从大型XML文档中自动提取特定产品信息的需求,并通过代理IP技术、设置Cookie和User-Agent以及多线程技术来解决实际网络环境下的数据抓取问题。最后,提供了一个Java示例代码,演示如何集成这些技术以高效地从XML源中抓取数据。
173 7
使用Java和XPath在XML文档中精准定位数据
|
2天前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
28 11
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
模型训练数据-MinerU一款Pdf转Markdown软件
MinerU是由上海人工智能实验室OpenDataLab团队开发的开源智能数据提取工具,专长于复杂PDF文档的高效解析与提取。它能够将含有图片、公式、表格等多模态内容的PDF文档转化为Markdown格式,同时支持从网页和电子书中提取内容,显著提升了AI语料准备的效率。MinerU具备高精度的PDF模型解析工具链,能自动识别乱码,保留文档结构,并将公式转换为LaTeX格式,广泛适用于学术、财务、法律等领域。
81 4
|
29天前
|
消息中间件 前端开发 Java
【国产化软件】接口开放平台:Java+Swagger+Vue3,适配移动端
本文档介绍了基于Java的开放平台技术栈及使用流程,涵盖从注册开发者账号、创建应用、申请令牌到调用API接口的全过程。平台提供丰富的接口管理和统计功能,支持开发者在线维护个人资料和接口令牌,同时兼容移动设备访问和黑夜模式。技术栈方面,后端采用Spring Boot 3 + MySQL + Redis + RabbitMQ + Nacos,前端则基于Vue3 + TypeScript 5.x + Element Plus + UnoCSS。访问开放平台的地址为:http://java.test.yesapi.cn/platform/。
|
2月前
|
Java Linux
java读取linux服务器下某文档的内容
java读取linux服务器下某文档的内容
41 3
java读取linux服务器下某文档的内容
|
1月前
|
API C#
在.NET中使用QuestPDF高效地生成PDF文档
在.NET中使用QuestPDF高效地生成PDF文档
|
4月前
|
Java API 数据中心
百炼平台Java 集成API上传文档到数据中心并添加索引
本文主要演示阿里云百炼产品,如何通过API实现数据中心文档的上传和索引的添加。
127 3
|
4月前
|
XML Java 数据格式
基于Java+freemarker实现动态赋值以及生成Word文档
使用Java和Freemarker技术实现动态数据填充到Word文档模板并生成新的Word文档。
293 0
基于Java+freemarker实现动态赋值以及生成Word文档