zoukankan      html  css  js  c++  java
  • 仿百度文库方案[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();
  • 相关阅读:
    hdu 1250
    hdu 4540(简单dp)
    hdu 1078+hdu1978+hdu 1428
    hdu 2208(dfs)
    hdu 3639(强连通+缩点+建反向图)+hdu 3072(最小树形图)
    hdu 1317+hdu 1535(SPFA)
    hdu 1245(最短路+bfs)
    hdu 1286( 欧拉函数 )
    Elementary Methods in Number Theory Exercise 1.4.1
    Elementary Methods in Number Theory Exercise 1.4.2
  • 原文地址:https://www.cnblogs.com/m3Lee/p/3849108.html
Copyright © 2011-2022 走看看