利用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. android style 中一些颜色的定义

    colorControlNormal 单选多选等控件颜色 colorControlActivated 单选多选等控件激活颜色

  2. AX函数,将EXCEL列号转为列名

    str GetExcelColName( int i_col) { int j; str ret; int v_div,v_mod; str tmp1,tmp2; int i_col_ascii; ; ...

  3. ios9和ios10的新特性

    昨天面试了一个做ios开发的公司,其中面试官问我最新的ios系统版本是多少,以及它的特性是什么?由于自己是初学者,所以对这些没有关注过.今天特地搜索了一下关于ios9和ios10的新特性,并整理了一下 ...

  4. CodeSmith 7.01破解下载

    运行CodesmithKeyGenerator.exe,1.修改Prefix输入框的值为:CS70P-2.在主页面点Generate,生成注册码,填入激活码到code smith的Serial框中,( ...

  5. 001MSP430概述

    1.MSP430系列单片机的特点 (1)超低功耗:生来就是为超低功耗设计的,从CPU内核结构到片上外设,以及整个芯片的生产制造都是本着超低功耗的原则来进行的,所以是一款实实在在的超低功耗单片机: (2 ...

  6. 配置DNS域名解析服务器

    bind这个DNS域名解析服务器解析好后,执行下面的语句实现开启服务 named -c named.conf & -c指配置脚本named.conf的文件地址 named.conf主要有下面几 ...

  7. C/C++下Netbeans的配置

    目录 目录1 1 netbeans开发环境搭建2 2 netbeans工程管理2 2.1 采用IDE自动生成Makefile2 3 netbeans工程配置2 3.1 编译工具链3 3.1.1 添加配 ...

  8. 必须会的SQL语句(四)删除和更新

    1.删除   1)删除记录   Delete from 表名 where id ='xx'   2)删除所有数据,并回归初始化标识字段.   Truncate table 表名   3)delete与 ...

  9. 对C语言中va_list,va_start,va_arg和va_end的一点理解

    这几个函数和变量是针对可变参数函数的,什么是可变参数函数呢,最经典的莫过于printf和scanf,这两个函数的声明如下: int printf(const char *format, ...); i ...

  10. Show Users Assigned to a Specific Role

    In a previous post I showed you how to know what Roles are assigned to a specific user. But here is ...