官方網站:
http://www.artofsolving.com/opensource/jodconverter
下載地點:
http://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啟動, 才可以使用.
使用教學:
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: 執行以下程式
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在使用的時候必須要注意.
參考資料:
http://www.artofsolving.com/opensource/jodconverter
那我也來補充一些好了
之前也在試這個檔案轉換的程式
程式最好加上 try-catch
因為之前發現有些檔案 format 不能轉,發生 Exception 後,connection 不會自動切斷,程式會 hand 住
所以改成如下方式:
1234567891011121314
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,程式如下:
1234567891011121314151617
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 的內容即可。
123
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。
在此獻給所有需要作 File Convert 的人試試。
免錢的,最好用。還有 source code 可以自己改。
分享到:
相关推荐
**JodConverter CLI与JodConverter 2.2.2版本详解** JodConverter是一款强大的文档转换工具,尤其在处理OpenOffice和LibreOffice格式之间的转换时表现出色。它的核心功能在于利用OpenOffice或LibreOffice的API来...
jodconverter-2.2.2.jar和jodconverter-cli-2.2.2.jar jodconverter-2.2.1不支持docx格式的word文档转换,2.2.2支持 linux和windows安装openOffice java通过jodconverter 将excel、doc文件转成pdf或html,比2.2.1...
**JodConverter 2.2.2:Java Office文档转换利器** JodConverter是一个基于Java的开源库,专为处理Office文档转换而设计。在这个压缩包中,我们有两个主要文件:`jodconverter-2.2.2.jar` 和 `jodconverter-2.2.2...
《jodconverter 2.2.2:Word文档到PDF转换的利器》 在信息技术领域,文件转换是一项常见的需求,特别是在处理各种文档格式时。jodconverter是一款强大的开源工具,它允许用户轻松地将Microsoft Office文档转换为PDF...
【标题】"jodConverter所需的jar"涉及到的是一个与Java相关的技术点,主要与文档转换工具有关。jodConverter是一款开源的文档转换工具,它能够将OpenOffice或LibreOffice支持的文档格式(如ODT、DOC、XLS、PPT等)...
JODConverter是一款基于Java的开源文档转换工具,主要功能是将各种文档格式转换为OpenDocument格式或从OpenDocument格式转换为其他常见的文档格式,如Microsoft Office的DOC、XLS、PPT等。这款工具的核心依赖是...
**JodConverter 2.2.2 完整资源包详解** JodConverter 是一个流行的开源Java库,用于将OpenOffice或LibreOffice文档转换为其他格式,如PDF、DOCX到PDF等。这个资源包提供了JodConverter的2.2.2版本,对于那些在...
JodConverter是一款强大的Java库,专门用于将Microsoft Office文档转换为PDF或其他OpenDocument格式。它基于OpenOffice.org或LibreOffice的API,提供了一个简洁的接口来处理文档转换任务。最新版本3.0针对Office ...
《jodconverter-2.2.2.jar:高效便捷的Word到PDF转换工具》 在IT行业中,文档格式转换是一项常见的需求,特别是在处理多种不同软件生成的文档时。例如,微软的Word文档(.doc或.docx)在某些场景下需要转换为更稳定...
《使用JODConverter 2.2.2进行OpenOffice文档转换》 在IT行业中,处理各种格式的文档是一项常见的任务,尤其是将文档从一种格式转换为另一种格式。OpenOffice是一款开源的办公软件套件,它支持多种文件格式,但有时...
《jodconverter 2.2.2:全面支持docx、xlsx格式转换的利器》 在信息化时代,文档处理和转换成为了日常工作中不可或缺的一部分。jodconverter,作为一个强大的开源工具,为用户提供了便利的文件格式转换功能。尤其在...
JodConverter一个Java的OpenDocument 文件转换器,可以进行许多文件格式的转换,它利用OpenOffice所提供的转换介面来进行转换工作,它能进行以下的转换工作: 一、Microsoft Office格式转换为OpenDocument,以及...
标题“jodconverter2.2.2.jar Maven依赖包”涉及到的是一个Java开发中的关键组件,即JODConverter库的一个特定版本。JODConverter是一个开源的文档转换工具,它允许用户在Java应用程序中方便地将各种Office文档格式...
《JodConverter——Java办公文档转换利器》 在IT领域,文档转换是一个常见的需求,尤其在企业级应用中,为了实现不同格式之间的互换,如将PDF转换为Word,或者反之,开发者通常需要借助特定的工具。JodConverter...
"jodconverter4.1+ OpenOffice 4.1.5在线预览文档"是一个针对这一需求的解决方案,它结合了Java技术、Maven构建工具以及开源的OpenOffice软件,实现了高效且灵活的Office文档在线预览功能。 首先,jodconverter是一...
《jodconverter-2.2.2.jar及相关包:OpenOffice与PDF转换的关键工具》 在信息技术领域,文档转换是一项常见的需求,特别是在处理不同格式之间的兼容性问题时。"jodconverter-2.2.2.jar及相关包"是解决此类问题的...
**JodConverter 2.2.1:OpenOffice 转换工具的增强与文本编码问题解决方案** 在IT行业中,转换文档格式是一项常见的任务,尤其是将Microsoft Office文档转换为PDF或其他格式。`jodconverter-2.2.1.rar`是一个针对...
《JodConverter 2.2.2:Java与OpenOffice结合的PDF转换神器》 在IT领域,文档格式转换是一项常见的需求,特别是将Word、Excel等Microsoft Office文档转换为PDF格式,以保证内容的准确性和一致性。JodConverter ...
JODConverter的核心版本是"jodconverter-core-3.0-beta-4",此版本已经经过优化,可以完美支持包括.docx, .pptx, .xlsx在内的最新Microsoft Office文件格式的转换。 要开始使用JODConverter,首先需要在项目中引入...