美文网首页
Word转PDF和swf

Word转PDF和swf

作者: ChangeAndChoice | 来源:发表于2017-07-18 11:27 被阅读0次

    这种转换方式需要调用第三方的软件
    OpennOffice和SWFTools
    之前在码云上面写的现在迁移过来https://git.oschina.net/git.neo.cn/codes

    /**
    *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();  
            }  
    
    
    }
    

    相关文章

      网友评论

          本文标题:Word转PDF和swf

          本文链接:https://www.haomeiwen.com/subject/wggckxtx.html