zoukankan      html  css  js  c++  java
  • 利用LibreOffice转换ppt、doc转化pdf

    利用LibreOffice转换ppt、doc转化pdf

    LibreOffice下载地址:   http://www.libreoffice.org/download/libreoffice-fresh/

    jodconverter jar包下载:http://sourceforge.net/projects/jodconverter/files/JODConverter/

    import java.io.File;  
        import java.io.FileNotFoundException;  
        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 Office2PDF {  
          
       
            public static int office2PDF(String sourceFile, String destFile) {  
              
                OpenOfficeConnection connection = null;  
                try {  
                    File inputFile = new File(sourceFile);  
                    if (!inputFile.exists()) {  
                        return -1;//文件不存在  
                    }  
          
                    //文件夹不存在创建目录  
                    File outputFile = new File(destFile);  
                    if (!outputFile.getParentFile().exists()) {  
                        outputFile.getParentFile().mkdirs();  
                    }  
          
                   
                    // connect to an OpenOffice.org instance running on port 8100  
                    connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);  
                    connection.connect();  
          
                    // convert  
                    DocumentConverter converter = new OpenOfficeDocumentConverter(  
                            connection);  
                    converter.convert(inputFile, outputFile);  
          
                    return 0;  
     
                } catch (ConnectException e) {  
                    e.printStackTrace();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }finally{  
                    if(connection!=null){  
                        // close the connection  
                        connection.disconnect();  
                    }                
                }  
          
                return 1;  
            }  
              
            public static void main(String[] args){  
                Date startDate = new Date();  
                String sourceFile = "d:\code\alipay.ppt";  
                String destFile = "d:\code\change2.pdf";  
                System.out.println(Office2PDF.office2PDF(sourceFile, destFile));  
                Date endDate = new Date();  
                System.out.println("the cost time is "+(endDate.getTime()-startDate.getTime()));  
            }  
        }      

    先运行

    soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;"

    soffice 在LibreOffice安装目录下

    如果出现下面的异常

     com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException: conversion failed: could not load input document

    尽量使用最新的LibreOffice

  • 相关阅读:
    formData实现图片上传
    input[type='file']样式美化及实现图片预览
    第一个Vue插件从封装到发布
    lastIndex对正则结果的影响
    使用图片地图减少HTTP请求数量
    实现文字颜色渐变
    vue-cli中如何引入jquery
    事件处理详解
    图片载入状态判断及实现百分比效果loading
    页面加载时触发的事件及顺序
  • 原文地址:https://www.cnblogs.com/vc60er/p/4045586.html
Copyright © 2011-2022 走看看