用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

doc转pdf和pdf转swf

2016-05-27 作者: NeoSteven举报

[java]代码库

/**
*OpenOffice可以到官网下载最新版的SWFTools也是直接搜索名字即可
*OpenOffice转2007版本一下的支持比较好2010以上对插入的艺术字表格等会丢失但是文字和图片还是没有问题的
*/
package com.java.doc2pdf;
 
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.ConnectException;
 
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;
/**
 * doc docx格式转换
 */
public class DocConverter {
     
     
    //Test测试方法
    public static void main(String[] args) throws Exception {
        DocConverter d = new DocConverter();
        String fileString = "美文.doc";
        String fileName = fileString.substring(0, fileString.lastIndexOf("."));
        int a = d.office2PDF("D:\\美文.docx","D:\\美文.pdf");
        System.out.println(a);
        int b = d.pdf2swf("D:\\美文.pdf","D:\\美文.swf",fileName);
        System.out.println(b);
         
         
         
         
    }
     
     /**
      * doc转pdf
      * @param sourceFile
      * @param destFile
      * @return
      */
     public int office2PDF(String sourceFile, String destFile) { 
            try
                File inputFile = new File(sourceFile); 
                if (!inputFile.exists()) { 
                    return -1;// 找不到源文件, 则返回-1 
                
                System.out.println("FindDocFile");
                // 如果目标路径不存在, 则新建该路径 
                File outputFile = new File(destFile); 
                if (!outputFile.getParentFile().exists()) { 
                    outputFile.getParentFile().mkdirs(); 
                
                System.out.println("mkPdfFile");
                //这里是OpenOffice的安装目录
                String OpenOffice_HOME = "C:/Program Files (x86)/OpenOffice 4";
                // 如果从文件中读取的URL地址最后一个字符不是 '\',则添加'\' 
                System.out.println(OpenOffice_HOME);
                if (OpenOffice_HOME.charAt(OpenOffice_HOME.length() - 1) != '\\') { 
                    OpenOffice_HOME += "\\"
                
                // 启动OpenOffice的服务 
                System.out.println("OpenOfficeStart");
                String command = OpenOffice_HOME 
                        + "program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\""
                Process pro = Runtime.getRuntime().exec(command); 
                // connect to an OpenOffice.org instance running on port 8100 
                OpenOfficeConnection connection = new SocketOpenOfficeConnection( 
                        "127.0.0.1", 8100); 
                connection.connect(); 
       
                // convert 
                DocumentConverter converter = new OpenOfficeDocumentConverter( 
                        connection); 
                converter.convert(inputFile, outputFile); 
       
                // close the connection 
                connection.disconnect(); 
                // 关闭OpenOffice服务的进程 
                pro.destroy(); 
                System.out.println("OpenOfficeStop");
                return 0
            } catch (FileNotFoundException e) { 
                e.printStackTrace(); 
                return -1
            } catch (ConnectException e) { 
                e.printStackTrace(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            
       
            return 1
        
     
    /**
     * pdf转换成 swf
     * @throws Exception
     */
      
     private int pdf2swf(String pdfFile, String swfFile,String fileName) throws Exception { 
          try
                File inputFile = new File(pdfFile); 
                if (!inputFile.exists()) { 
                    return -1;// 找不到源文件, 则返回-1 
                
                System.out.println("FindDocFile");
                // 如果目标路径不存在, 则新建该路径 
                File outputFile = new File(swfFile); 
                if (!outputFile.getParentFile().exists()) { 
                    outputFile.getParentFile().mkdirs(); 
                
                System.out.println("mkSwfFile");
                //这里是SWFTools的安装目录
                String SWFTools_HOME = "F://test//SWFTools//pdf2swf.exe";
                System.out.println("SWFToolsStart");
                System.out.println(inputFile.getPath());
                System.out.println(outputFile.getPath());
                String command = (SWFTools_HOME
                        +" "+inputFile.getPath()+ " -o " +" "+ outputFile.getPath()
                        + " -T 9");
                System.out.println("转换命令:" + command);
                Process pro = Runtime.getRuntime().exec(command);
                System.out.println(loadStream(pro.getInputStream())); 
                System.out.println("swf文件转份成功!!!"); 
                System.out.println(outputFile.getPath()); 
                pro.destroy(); 
//              if (inputFile.exists()) {
//                  inputFile.delete();
//              }
 
                System.out.println("SWFToolsStop");
                return 0
            } catch (FileNotFoundException e) { 
                e.printStackTrace(); 
                return -1
            } catch (ConnectException e) { 
                e.printStackTrace(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            
         return 0;
          
        
           
        private static String loadStream(InputStream in) throws Exception { 
            int len = 0
            in = new BufferedInputStream(in); 
            StringBuffer buffer = new StringBuffer(); 
            while ((len = in.read()) != -1) { 
                buffer.append((char) len); 
            
            return buffer.toString(); 
        
 
 
}

[源代码打包下载]




网友评论    (发表评论)

共2 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...