1.下載openoffice
openoffice的下載地址:http://www.openoffice.org/
2.安裝(記住自己的安裝路徑,待會要用到)
3. pom.xml
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
<dependency>
<groupId>com.github.livesense</groupId>
<artifactId>jodconverter-core</artifactId>
<version>1.0.5</version>
</dependency>
4.業務層
OFFICE_HOME 用自己的安裝路徑(第二個步驟的時候)
private static OfficeManager officeManager;
private static String OFFICE_HOME = "D:/software/OpenOffice 4/";
private static int port[] = { 8100 };
public void convert2PDF(String inputFile, String outputFile) throws FileNotFoundException {
startService();
System.out.println("進行文檔轉換轉換:" + inputFile + " --> " + outputFile);
OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);
converter.convert(new File(inputFile), new File(outputFile));
stopService();
System.out.println();
}
// 打開服務器
public static void startService() {
DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
try {
System.out.println("準備啓動服務....");
configuration.setOfficeHome(OFFICE_HOME);// 設置OpenOffice.org安裝目錄
configuration.setPortNumbers(port); // 設置轉換端口,默認爲8100
configuration.setTaskExecutionTimeout(1000 * 60 * 5L);// 設置任務執行超時爲5分鐘
configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);// 設置任務隊列超時爲24小時
officeManager = configuration.buildOfficeManager();
officeManager.start(); // 啓動服務
System.out.println("office轉換服務啓動成功!");
} catch (Exception ce) {
System.out.println("office轉換服務啓動失敗!詳細信息:" + ce);
}
}
// 關閉服務器
public static void stopService() {
System.out.println("關閉office轉換服務....");
if (officeManager != null) {
officeManager.stop();
}
System.out.println("關閉office轉換成功!");
}
public static void main(String[] args) throws Exception {
String path = "C:/Users/johnny/Desktop/文檔/20170420/test/001/";
OpenOfficePdfConvert opc = new OpenOfficePdfConvert();
opc.convert2PDF(path+"1.docx", path+"1.pdf");
}