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

原文出处:http://www.cnblogs.com/star-studio/archive/2011/12/09/2282411.html

 

第三步,使用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)