利用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

利用LibreOffice转换ppt、doc转化pdf的更多相关文章

  1. Python实现doc转化pdf

    Python实现doc转化pdf python源码实现doc转化pdf #-*- coding:utf-8 -*- # doc2pdf.py: python script to convert doc ...

  2. libreoffice转换文件为pdf文件乱码问题解决办法

    最近系统需要一个office文件预览功能 解决方案为使用libreoffice将office文件转换为pdf文件,然后使用swftools将pdf文件转换为swf文件 最后在前台使用flexpaper ...

  3. 15个最好的PDF转word的在线转换器,将PDF文件转换成doc文件

    PDF是一种文件格式,包含文本,图像,数据等,这是独立于操作系统的文件类型.它是一个开放的标准,压缩,另一方面DOC文件和矢量图形是由微软文字处理文件.该文件格式将纯文本格式转换为格式化文档.它支持几 ...

  4. Java使用Jacob将Word、Excel、PPT转化成PDF

    使用Jacob将金山WPS转化成PDF,其中WPS文字使用KWPS.Aplication.Excel表格是KET.Application.演示文档是KWPP.Application,废话不多说,直接上 ...

  5. 【强大的PDF格式转换工具】Lighten PDF Converter OCR for Mac 6.2.0

    [简介] Lighten PDF Converter OCR 是一款Mac上强大的PDF格式转换工具,可以将PDF文档快速批量的转换为Office (Word, Excel, PowerPoint), ...

  6. 使用python调用wps v9转换office文件到pdf

    #!/usr/bin/python2.6 # -*- coding: utf-8 -*- # pip install timeout-decorator import os import win32c ...

  7. Java通过openOffice实现word,excel,ppt转成pdf实现在线预览

    Java通过openOffice实现word,excel,ppt转成pdf实现在线预览 一.OpenOffice 1.1 下载地址 1.2 JodConverter 1.3 新建实体类PDFDemo ...

  8. 利用Swig转换C++代码为C#可用的代码

    详细的文件路径为:http://user.qzone.qq.com/1259374136/blog/1432887689 Swig学习教程 1.Swig的基本介绍 SWIG(Simplified Wr ...

  9. [错误解决] Libreoffice转换不成功,直接不做任何操作

    问题描述: Libreoffice在版本5.3.0之前都存在这个问题.现象是:当你运行其中一个LibreOffice的时候,再运行另外一个Libreoffice转换时,将不做任何操作. 解决方案: 如 ...

随机推荐

  1. C++ Namespace 详解

    命名空间的定义格式为:(取自C++标准文档) named-namespace-definition: namespace identifier { namespace-body } unnamed-n ...

  2. MFC中release版本和debug版本区别

    最近MFC写了个程序,生成release版,原来正常,后来删掉了些控件再编译运行,结果竟然报内存读写错误,debug却是正常的.后来将“Project   Settings”   中   “C++/C ...

  3. centos6 pxe minimal install

    # 01-78-2b-cb-69-10-f3 default menu.c32 prompt 0 timeout 100 LABEL centos-6 MENU DEFAULT MENU LABEL ...

  4. (笔记)angular material radio用法

  5. Mysql的cmake编译与安装

    Mysql的cmake编译与安装 实验准备环境: 我的操作系统是centos6.6 编译安装MariaDB之前,我们需要准备一些需要的环境 1.开发包组套件 [root@node19 ~]# yum ...

  6. ios网络:应用一个请求的7个步骤

    Splitting big tasks into small tasks is often one of the best ways to solve a problem. Thus, in the ...

  7. SQL Server 遇到 Automation服务器不能创建对象

    Windows 2003  安装SQL Server出现Automation问题  如下:  ######安装SQL Server 遇到 Automation服务器不能创建对象问题 解决办法: 1.1 ...

  8. c# 加密/解密 哈希

    DES一共就有4个参数参与运作:明文.密文.密钥.向量.其中这4者的关系可以理解为: 密文=明文+密钥+向量: 明文=密文-密钥-向量: 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复,那么 ...

  9. nginx+php与apache+php性能对比

    测试工具http_load相同的动态页面测试,相同的硬件资源,相同并发,相同请求数量的前提下,nginx+php比apache+php的性能要 差,而且如果请求的压力大于硬件资源的承受能力,nginx ...

  10. echo -n -e参数详解

      echo -n 不换行输出 最终输出  123456 而不是 123 456   echo -e 处理特殊字符   若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: \a 发出 ...