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

官方網站:
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

要在Linux环境中使用Java JODConverter批量转换文件为PDF,你可以按照以下步骤进行操作: 1. 安装OpenOffice或LibreOffice:JODConverter依赖于OpenOffice或LibreOffice,因此需要先在Linux环境中安装其中一个软件。 2. 安装JODConverter:下载JODConverter的压缩包并解压缩,然后将JAR文件添加到你的Java类路径中。 3. 编写Java代码:编写Java代码来实现批量转换文件为PDF。以下是一个示例代码: ```java import java.io.File; import java.util.HashMap; import java.util.Map; import org.artofsolving.jodconverter.OfficeDocumentConverter; import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration; import org.artofsolving.jodconverter.office.OfficeManager; public class ConvertFilesToPDF { public static void main(String[] args) { // Set up the OfficeManager configuration DefaultOfficeManagerConfiguration config = new DefaultOfficeManagerConfiguration(); config.setOfficeHome("/usr/lib/libreoffice"); config.setPortNumber(8100); // Start the OfficeManager OfficeManager manager = config.buildOfficeManager(); manager.start(); // Set up the converter OfficeDocumentConverter converter = new OfficeDocumentConverter(manager); // Set up the input and output directories File inputDir = new File("/path/to/input/dir"); File outputDir = new File("/path/to/output/dir"); // Get a list of all files in the input directory File[] files = inputDir.listFiles(); // Loop through all files and convert them to PDF for (File file : files) { String inputFilePath = file.getAbsolutePath(); String outputFilePath = outputDir.getAbsolutePath() + "/" + file.getName() + ".pdf"; Map<String, Boolean> filterData = new HashMap<String, Boolean>(); filterData.put("Hidden", true); converter.convert(new File(inputFilePath), new File(outputFilePath), filterData); } // Stop the OfficeManager manager.stop(); } } ``` 4. 运行代码:使用Java命令运行代码,即可批量转换文件为PDF,输出文件将保存在指定的输出目录中。 以上是在Linux环境中使用Java JODConverter批量转换文件为PDF的步骤,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值