第三步,使用JODConverter将office文档转换为pdf

JODConverter是一个java的OpenDucument文件转换器,可以进行许多文件格式的转换,它利用

OpenOffice来进行转换工作,它能进行以下的转换工作:

1.Microsoft Office格式转换为OpenDucument,以及OpenDucument转换为Microsoft Office

2.OpenDucument转换为PDF,Word、Excel、PowerPoint转换为PDF,RTF转换为PDF等。

它是一个开源项目。

笔者的项目是在MyEclipse下开发的。

下载最新版的jodconverter-2.2.2,把lib文件夹的包导入到你的DocConverter项目的lib文件夹内。

(假设你的项目是DocConverter)

新建DOC2PDFUtil.java

package com.iori.webapp.util;import java.io.File;   import java.io.IOException;import java.net.ConnectException;   import java.util.Date;   

import com.artofsolving.jodconverter.DocumentConverter;   import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;   import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;   import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;   

public class DOC2PDFUtil extends java.lang.Thread  {private File inputFile;// 需要转换的文件         private File outputFile;// 输出的文件   

public DOC2PDFUtil(File inputFile, File outputFile) {   this.inputFile = inputFile;   this.outputFile = outputFile;       }   

public void docToPdf() {            Date start = new Date();   

         OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);   try {                connection.connect();                DocumentConverter converter = new OpenOfficeDocumentConverter(connection);                converter.convert(inputFile, outputFile);            } catch (ConnectException cex) {                cex.printStackTrace();            } finally {   // close the connection                if (connection != null) {                    connection.disconnect();                    connection = null;                }            }        }   

/**         * 由于服务是线程不安全的,所以……需要启动线程  */  public void run() {   this.docToPdf();        }   

public File getInputFile() {   return inputFile;        }   

public void setInputFile(File inputFile) {   this.inputFile = inputFile;        }   

public File getOutputFile() {   return outputFile;        }   

public void setOutputFile(File outputFile) {   this.outputFile = outputFile;        }  

/**       * 测试main方法        * @param args*/public static void main(String[] args) {         File inputFile = new File("c://temp//333.xls");         File outputFile = new File("c://temp//333.pdf");         DOC2PDFUtil dp=new DOC2PDFUtil(inputFile,outputFile);         dp.start();     }  } 

在DOC2PDFUtil.java,右键属性 - >Run as - >Java Application ,输出main的测试结果。

在jsp中执行

新建MyDOC2PDFTest.jsp

<%@ page import="java.io.*"%><%@ page import="com.artofsolving.jodconverter.openoffice.connection.*"%><%@ page import="com.artofsolving.jodconverter.openoffice.connection.*"%><%@ page import="com.artofsolving.jodconverter.openoffice.converter.*"%><%@ page import="com.artofsolving.jodconverter.*"%><%@ page import="java.util.*"%><%@ page import="com.iori.webapp.util.*"%>

<%File inputFile = new File("c://temp//333.xls");File outputFile = new File("c://temp//333.pdf");DOC2PDFUtil dp=new DOC2PDFUtil(inputFile,outputFile);dp.start();%><!-- 下面这些html可以去掉 --><html> <head><title>Simple jsp page</title></head> <body>Place your content here</body></html>

在项目DocConverter根目录,右键属性 - >Run as - >MyEclipse Server Application

发布到之前安装的Tomcat 6.0的根目录,然后用url路径访问:Http://localhost:8080/DocConverter/MyDOC2PDFTest.jsp 进行测试。

JODConverter将office文档转换pdf,用到的代码如下:

File inputFile = new File("c://temp//333.xls");File outputFile = new File("c://temp//333.pdf");

// 链接 一个运行在8100端口的OpenOffice.org 实例OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);connection.connect();

// 创建一个converter对象并转换格式DocumentConverter converter = new OpenOfficeDocumentConverter(connection);converter.convert(inputFile, outputFile);

// 关闭连接connection.disconnect();

仿百度文库方案[openoffice.org 3+swftools+flexpaper](一) 之 tomcat6.0+jdk1.6环境配置

仿百度文库方案[openoffice.org 3+swftools+flexpaper](二) 之 安装openoffice.org

仿百度文库方案[openoffice.org 3+swftools+flexpaper](三) 之 使用JODConverter将office文档转换为pdf

仿百度文库方案[openoffice.org 3+swftools+flexpaper](四) 之 使用swftools将pdf转换为swf
仿百度文库方案[openoffice.org 3+swftools+flexpaper](五) 之 转换pdf的同时,进一步转为swf
仿百度文库方案[openoffice.org 3+swftools+flexpaper](六) 之 flexpaper在线浏览swf文档
仿百度文库方案[openoffice.org 3+swftools+flexpaper](七) 之 使用iText将jpg、jpeg、png转换为pdf
仿百度文库方案[openoffice.org 3+swftools+flexpaper](八) 之 常见问题集FAQ

转载于:https://www.cnblogs.com/star-studio/archive/2011/12/09/2282411.html

仿百度文库方案[openoffice.org 3+swftools+flexpaper](三) 之 使用JODConverter将office文档转换为pdf...相关推荐

  1. 仿百度文库方案[openoffice.org 3+swftools+flexpaper](八) 之 常见问题集FAQ

    1.txt转换swf,发生中文乱码. txt转换为utf-8编码,或txt格式手动改为odt,上传就不会发生乱码.从根源上解决,暂时就算了...暂时不想去纠结这些鸡毛. 2.加密的pdf可能导致转换为 ...

  2. 仿百度文库方案[openoffice.org 3+swftools+flexpaper](七) 之 使用iText将jpg、jpeg、png转换为pdf

    其他,使用iText将jpg/jpeg/png转换为pdf iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或r ...

  3. 百度文库实现方案 openoffice.org 3 + swftools+flexpaper+java

    百度文库实现方案[openoffice.org 3+swftools+flexpaper] tomcat6.0+jdk1.6环境配置 本方案是笔者在网络上收集前人智慧,以及辛苦奋斗探索几周完成的成果. ...

  4. windows/linux服务器上java使用openoffice将word文档转换为PDF(亲测可用)

    一. 前言 1. 开发过程中经常会使用java将office系列文档转换为PDF, 一般都使用微软提供的openoffice+jodconverter 实现转换文档. 2. openoffice既有w ...

  5. java openoffice 打印_java调用openoffice将office系列文档转换为PDF的示例方法

    前导: 发过程中经常会使用java将office系列文档转换为PDF, 一般都使用微软提供的openoffice+jodconverter 实现转换文档. openoffice既有windows版本也 ...

  6. php linux OpenOffice+JODConverter+php实现将word/ppt/excel文档转换为pdf

    注意点:上传文件名生成一个别名备用,在文件路径中使用英文或数组 总结下: 1.碰到的坑不少,网上资料很多不全面,就拿linux上安装openoffice来说,需要安装一堆的依赖才成功跑起来 安装的方法 ...

  7. View Documentation in Web Using [openoffice.org 3+swftools+flexpaper]

    本方案是笔者在网络上收集前人智慧,以及辛苦奋斗探索几周完成的成果. 由于网络上,大部分资料.文章都比较零碎.重复.不够全面.寻找全面系统的介绍该方案的资料实属不易. 本文从一个只会net.jsp零基础 ...

  8. 【转载】FlexPaper+SWFTools 实现仿百度文库及一些小问题

    网上已有很多FlexPaper仿百度文库的一些文章,园子里也有很多大牛的详细教程. 结合这次做的例子,在这里详细记录一下使用Flexpaper实现仿百度文库的效果,及自己在跟着园子里的教程做的时候,遇 ...

  9. FlexPaper+SWFTools 实现仿百度文库及一些小问题

    网上已有很多FlexPaper仿百度文库的一些文章,园子里也有很多大牛的详细教程. 结合这次做的例子,在这里详细记录一下使用Flexpaper实现仿百度文库的效果,及自己在跟着园子里的教程做的时候,遇 ...

最新文章

  1. 认识人和鱼的AI,能识别美人鱼吗?阿里CVPR论文试用因果推理方法解答
  2. android与mysql数据库同步_android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?...
  3. C++ Primer 有感(类)
  4. 《Linux内核设计与实现》读书笔记(六)- 内核数据结构
  5. 旧项目适配iphone6和iphone plus
  6. 【二分】雪(luogu 7405)
  7. JavaWeb——springMVC请求数据绑定分类解析(深度好文)
  8. VC++中多线程学习(MFC多线程)三(线程同步包含:原子互锁、关键代码段、互斥器Mutex、Semaphores(信号量)、Event Objects(事件))
  9. python 原理 pdf_《深入浅出深度学习:原理剖析与Python实践》.pdf
  10. 安装debian 9.1后,中文环境下将home目录下文件夹改为对应的英文
  11. 利用React 和ant-design 搭建cnode项目的随笔
  12. XTU OJ String game
  13. #python “滑动窗口” 处理氨基酸序列
  14. 海思(六)如何在ubuntu20.04上搭建caffe环境
  15. zblog php wordpress,ZblogPHP转换WordPress教程
  16. php 获取windows进程,PHP获取python进程并终止它。Xamp/Windows
  17. 目不暇接 时尚艳丽的新款苹果手机 MAC APPLE
  18. DELL H61刷BIOS开启AHCI
  19. 使用 Vue 和 Electron 开发一款简单的 Markdown 编辑器
  20. C++ 数据存储类型

热门文章

  1. 仓库货位卡标识牌_仓储管理中的货位与标识管理
  2. 最详细的----->一维数组实现杨辉三角
  3. 我的世界服务器ess配置信息,[搬运贴]超详细的Ess基础插件介绍
  4. java foreach order_Java 8流中的forEach vs forEachOrdered
  5. 数据结构--搜索BFS
  6. C++中的.hpp理解
  7. STM32低功耗模式下GPIO如何配置最节能?
  8. CS131-专题7:图像特征(SIFT算法)
  9. 树莓派4安装Android 并 root (LineageOS 17.1)
  10. Linux那些事儿之我是Sysfs(7)dentry与inode