展开全部

http://nopainnogain.iteye.com/blog/819432

[JODConverter]word转pdf心得分享(转)

文档视频转为flash格式在线播放

OfficeSocketLinuxOpenSourceExcel

官方网站: http://www.artofsolving.com/opensource/jodconverter

下载地点:

e68a84e8a2ad62616964757a686964616f31333361303062http://www.artofsolving.com/opensource/jodconverter

http://zh.openoffice.org/new/zh_tw/downloads.html

目前版本: JODConverter v2.2.1, OpenOffice v3.0.0

使用需求: JDK1.4以上, 安装OpenOffice v2.0.3以上

基本简介:

JODConverter主要的功能是用来做各种档案的转换. 目前测试过, Word,Excel,PowerPoint转PDF都是没问题的.

因为JODConverter是透过OpenOffice来做转换, 所以使用前需要先安装OpenOffice, 并且将OpenOffice的Service启动, 才可以使用.

OpenOffice.org具有一个鲜为人知的特性就是其能够作为一个服务来运行,而这种能力具有一定的妙用。举例来说,你可以把openoffice.og变成一个转换引擎,利用这种转换引擎你可以通过网络接口或命令行工具对文件的格式进行转换,JODConverter可以帮助你实现OpenOffice.org的这种文件转换功能。

为了将OpenOffice.org作为一个转换引擎,你必须以服务的方式将它启动,使它在某个特定的端口监听连接,在Linux平台你可以用如下的命令启动openoffice.org:

soffice -headless -accept=”socket,port=8100;urp;”(我在linux下使用soffice -headless -accept=”socket,host=127.0.0.1,port=8100;urp;”,open office server是开启来了,但是文件转换不成功,异常是连接失败,这个很可以是你用jodconverter来转换时使用的是localhost,而当你的机有host配置文件里没有将localhost与127.0.0.1对应起来时,就无法解析了,这里可以修改host文件或去掉host=127.0.0.1,这样我试过可以成功)

在Windows平台, 使用如下命令:

“C:\Program Files\OpenOffice.org 2.2\program\soffice” -accept=”socket,port=8100;urp;”

使用教学:

Step1: 安装OpenOffice

Step2: 启动OpenOffice Service

1 cd C:\Program Files\OpenOffice.org 3\program

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

Step3:将JODConverter的Jar档放进专案中的Library, 请检查你的专案是否包含以下的Jar档:

jodconverter-2.2.1.jar

jurt-2.3.0.jar

xstream-1.2.2.jar

ridl-2.3.0.jar

commons-io-1.3.1.jar

juh-2.3.0.jar

slf4j-api-1.4.3.jar

unoil-2.3.0.jar

slf4j-jdk14-1.4.3.jar

Step4: 准备一个word档放在c:/document.doc

Step5: 执行以下程式

Java代码

import java.io.File;

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 JodDemo {

public static void main(String[] args) throws Exception{

File inputFile = new File("c:/document.doc");

File outputFile = new File("c:/document.pdf");

// connect to an OpenOffice.org instance running on port 8100

OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);

connection.connect();

// convert

DocumentConverter converter = new OpenOfficeDocumentConverter(connection);

converter.convert(inputFile, outputFile);

// close the connection

connection.disconnect();

}

}

程式说明:

程式的部份相当简洁, 特别要注意的地方是第12行连线的port必须与你启动OpenOffice的Port相同,

另外JODConverter预设是用副档名作文件种类的判断, 所以副档名必须要正确才行.

如果副档名比较特别的话, 就必须在convert()的时候强制指定Document Type.

心得:

JODConverter使用起来相当方便, 官网也提供War档让JODConverter变成Web Service提供给不同的语言来呼叫.

特别要注意的是, OpenOffice Service并不是ThreadSafe的, 多个Web AP在使用的时候必须要注意.

那我也来补充一些好了

之前也在试这个档案转换的程式

程式最好加上 try-catch

因为之前发现有些档案 format 不能转,发生 Exception 后,connection 不会自动切断,程序会hand 住

所以改成如下方式:

Java代码

public void convert(String input, String output){

File inputFile = new File(input);

File outputFile = new File(output);

OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);

try {

connection.connect();

DocumentConverter converter = new OpenOfficeDocumentConverter(connection);

converter.convert(inputFile, outputFile);

} catch(Exception e) {

e.printStackTrace();

} finally {

try{ if(connection != null){connection.disconnect(); connection = null;}}catch(Exception e){}

}

}

再来,明明就是 open office 的档案,却生不能转换的问题。例如:*.STW, *.SXD, *.ODF 等,後来才知道可以自行指定来源档和输出档的 mime-type,程式如下:

Java代码

public void convertSTW(String input, String output){

DocumentFormat stw = new DocumentFormat("OpenOffice.org 1.0 Template", DocumentFamily.TEXT, "application/vnd.sun.xml.writer", "stw");

DefaultDocumentFormatRegistry formatReg = new DefaultDocumentFormatRegistry();

DocumentFormat pdf = formatReg.getFormatByFileExtension("pdf");

File inputFile = new File(input);

File outputFile = new File(output);

OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);

try {

connection.connect();

DocumentConverter converter = new OpenOfficeDocumentConverter(connection);

converter.convert(inputFile, stw, outputFile, pdf);

} catch(Exception e) {

e.printStackTrace();

} finally {

try{ if(connection != null){connection.disconnect(); connection = null;}}catch(Exception e){}

}

}

上面的程式是转换 STW 到 PDF,如果是 SXD / ODF 则只需要变更 DocumentFormat 的内容即可。

Java代码

DocumentFormat sxd = new DocumentFormat("OpenOffice.org 1.0 Drawing", DocumentFamily.DRAWING, "application/vnd.sun.xml.sraw", "sxd");

DocumentFormat odf = new DocumentFormat("OpenDocument Math", DocumentFamily.TEXT, "application/vnd.oasis.opendocument.formula", "odf");

所有 default support 的 DocumentFormat 都在 com.artofsolving.jodconverter.DefaultDocumentFormatRegistry 里,但并非所有 open office 支援的 file format 都有,所以要像上面的方法自行去定义 DocumentFormat,至于它里面的参数可以从jodconverter-2.2.2.jar包的com.artofsolving.jodconverter包下的document-formats.xml文件里面得到,这样就可以完成多种格式的转换,如open office,ms office , wps office及所有的纯文本文件。

在此献给所有需要作 File Convert 的人试试。

免钱的,最好用。还有 source code 可以自己改。

另 将图片文件放入 word中可直接用word自带 pdf 转化工具进行转化!

本回答被提问者采纳

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

jodconverter 远程配置_jodconverter支持什么格式转换相关推荐

  1. 批量文档处理软件推荐,同时处理 Word、Excel、PPT、PDF 等办公文件,支持批量格式转换、重命名和查找替换等

    概要:今天给大家带来的这款专门针对 Word.PPT.Excel.PDF 和记事本文本文件批量处理格式转换的软件--我的ABC软件工具箱.它集合了批量修改文件名称.批量修改文件内容.批量设置页眉页脚. ...

  2. PC上一款非常好用的PDF阅读器,支持免费格式转换、支持云端同步

    目前市面上PDF阅读器有很多,但是要真正做到免费格式转换,云端同步的阅读器确实为数不多,分享个好用的PDF阅读器吧! 福昕阅读器领鲜版:https://www.foxitsoftware.cn/pdf ...

  3. 安卓手机ppt阅读器_PC上一款非常好用的PDF阅读器,支持免费格式转换、支持云端同步...

    目前市面上PDF阅读器有很多,但是要真正做到免费格式转换,云端同步的阅读器确实为数不多,分享个好用的PDF阅读器吧! 福昕阅读器领鲜版: 福昕阅读器领鲜版下载_支持PDF合并.PDF拆分及旋转的PDF ...

  4. 支持多种格式转换的PDF转换成PPT转换器

    对于企业员工而言,要想将手头上的文档处理好,一款必备的 PDF转换成PPT转换器可以说是必不可少的一个工具.类似的软件在各大软件下载网站上不不罕见,但这样的软件总是有各种各样的问题,要么转换失败.要么 ...

  5. (可用)SOX 支持mp3格式转换

    Centos 通过 yum install sox 是不支持 mp3 格式语音转换,所以必须通过编译的方式安装 sox.下载附件中的两个 tar.gz 包. 如果已经通过 yum 安装了 sox  的 ...

  6. 音视频封装格式转换器(支持avi格式转换),基于FFmpeg4.1实现(音视频学习笔记二)

    之前参照雷霄骅博士的最简单的基于FFMPEG的封装格式转换器(无编解码)的博客和FFmpeg官网的example,实现一个简单的封装格式转换器.但是后来我发现我想从mp4格式转换成avi格式的时候会报 ...

  7. iis php json文件,配置iis支持.json格式的文件

    一.IIS 6 1. MIME设置: 在IIS的站点属性的HTTP头设置里,选MIME 映射中点击"文件类型"-"新类型",添加一个文件类型: 关联扩展名:*. ...

  8. ffmpeg 支持aac格式转换

    网上搜了一下命令为: ffmpeg -i 20120814164324_205.wav -acodec libfaac output.aac 出现了如下提示,没有找到编码器 Unknown encod ...

  9. 群晖安装Calibre(含格式转换豆瓣元数据推送kindle)221211

    群晖安装Calibre-web(格式转换&豆瓣元数据&推送kindle)221211测试可用 结论&效果 Calibre是什么 教程 一.本文安装Calibre的条件 二.选择 ...

  10. 有什么免费的视频格式转换工具?快试试这4款,堪称“良心”工具

    无论是在娱乐.学习还是工作中,我们都有离线观看视频的需求,然而有些视频格式系统自带的播放软件不支持,这个时候就需要转换视频格式,有什么免费的视频格式转换工具呢?下面给大家分享4款. 我们要分享的第一款 ...

最新文章

  1. Alexnet结构及代码
  2. ORACLE 动态SQL中的多个单引号
  3. Hbase PageFilter 取出数量不准确问题
  4. 八皇后问题和八数码问题的最陡上升爬山法、首选爬山法、随机重启爬山法、模拟退火算法的分析和实现
  5. asp.net mvc 点滴 一 asp.net mvc vs asp.net web forms
  6. C++循环语句的效率
  7. java day29【DBC基本概念 、快速入门 、对JDBC中各个接口和类详解】
  8. homestead安装swoole扩展
  9. SSL证书下载及部署
  10. 基于redis的简易单点登录系统
  11. 解决eclipse安装Darkest Dark Theme报错
  12. 如果能站在巨人的肩膀上
  13. Spss做相关性分析
  14. 仿9GAG制作过程(二)
  15. 最近游戏更新 未整理 无图片 续2
  16. ts版操作localStorage和sessionStorage工具
  17. AI工程师应聘要具备哪些能力?
  18. SAX错误–序言中不允许包含内容
  19. SpringBoot的热布署和多环境配置(四)
  20. 计算机重装后不能启动怎么办,电脑重装系统后开不了机怎么处理

热门文章

  1. Maven开发笔记(三)—— Maven中dependencies和dependencyManagement
  2. 综述: 通信雷达一体化中的信号处理
  3. 网易通行证html代码,JavaScript实现仿网易通行证表单验证
  4. 删除自己添加的注册表,删除注册表
  5. visio软件接口流程图_用Visio画流程图
  6. 利用自己的祖源成分结果画祖源成分饼图
  7. 浏览器网页操作 EXCEL 示例
  8. 对象转换 json 字符串和 json转换对象的几种方式
  9. unity 字体 素材_unity中文字体制作工具
  10. 我珍藏的神兵利器 - 效率工具for Win[转]