Java 使用openoffice進(jìn)行word轉(zhuǎn)換為pdf的方法步驟
一、下載openoffice第三方工具
建議下載4.1.6版本
http://www.openoffice.org/download/index.html
二、開啟openoffice服務(wù)
找到openoffice安裝目錄下OpenOffice 4\program>soffice運(yùn)行cmd,運(yùn)行命令soffice -headless -accept=“socket,host=127.0.0.1,port=8100;urp;” -nofirststartwizard
三、Java代碼
package com.ry.controller; import java.io.File; 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 PDTT { public static void main(String[] args) { // 找到openoffice安裝目錄下OpenOffice 4\program>soffice運(yùn)行cmd // 開啟open office命令:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard // 獲取開始時(shí)間 Date startDate = new Date(); // 目標(biāo)文件(這里寫需要被轉(zhuǎn)換的文件地址和文件名) String sourceFile = "C:\\Users\\86199\\Desktop\\aaa.doc"; // 生成的文件(這里寫轉(zhuǎn)換為pdf的文件地址和文件名) String destFile = "C:\\Users\\86199\\Desktop\\測(cè)試.pdf"; try { // 運(yùn)行轉(zhuǎn)換方法 System.out.println(office2PDF(sourceFile, destFile)); } catch (Exception e) { e.printStackTrace(); } // 獲取結(jié)束時(shí)間 Date endDate = new Date(); System.out.println("總耗時(shí):" + (endDate.getTime() - startDate.getTime())); } /* 具體的轉(zhuǎn)換方法 */ public static int office2PDF(String sourceFile, String destFile) throws Exception { try { File inputFile = new File(sourceFile); // 判斷文件是否存在 if (!inputFile.exists()) { System.out.println("源文件不存在"); return -1;// 找不到源文件, 則返回-1 } // 如果目標(biāo)路徑不存在, 則新建該路徑 File outputFile = new File(destFile); if (!outputFile.getParentFile().exists()) { outputFile.getParentFile().mkdirs(); } // 連接到在端口8100上運(yùn)行的OpenOffice.org實(shí)例 OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100); connection.connect(); // 進(jìn)行轉(zhuǎn)換 DocumentConverter converter = new OpenOfficeDocumentConverter(connection); converter.convert(inputFile, outputFile); // 關(guān)閉連接 connection.disconnect(); // 執(zhí)行成功 System.out.println("轉(zhuǎn)化成功"); return 0; } catch (Exception e) { e.printStackTrace(); } // 失敗時(shí)返回1 return 1; } }
waven倉(cāng)庫(kù)的配置依賴信息
<!-- Apache Utils --> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.8.0</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.5</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <!-- openoffice--> <dependency> <groupId>com.artofsolving</groupId> <artifactId>jodconverter</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>org.openoffice</groupId> <artifactId>ridl</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.openoffice</groupId> <artifactId>jurt</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>org.openoffice</groupId> <artifactId>juh</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.openoffice</groupId> <artifactId>unoil</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.20</version> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>RELEASE</version> <scope>compile</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.artofsolving.jodconverter/jodconverter-core --> <dependency> <groupId>org.artofsolving.jodconverter</groupId> <artifactId>jodconverter-core</artifactId> <version>3.0-beta-4</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
需要注意的問(wèn)題:
由于依賴版本原因轉(zhuǎn)換不了docx文件。
到此這篇關(guān)于Java 使用openoffice進(jìn)行word轉(zhuǎn)換為pdf的方法步驟的文章就介紹到這了,更多相關(guān)Java openoffice word轉(zhuǎn)換為pdf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java8學(xué)習(xí)教程之lambda表達(dá)式的使用方法
Java8最值得學(xué)習(xí)的特性就是Lambda表達(dá)式,下面這篇文章主要給大家介紹了關(guān)于java8學(xué)習(xí)教程之lambda表達(dá)式使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09擴(kuò)展tk.mybatis的流式查詢功能實(shí)現(xiàn)
mybatis查詢默認(rèn)是一次獲取全部,如果數(shù)據(jù)過(guò)于龐大,就會(huì)導(dǎo)致OOM問(wèn)題,本文就介紹了tk.mybatis 流式查詢,具有一定的參考價(jià)值,感興趣的可以了解一下2021-12-12MyBatis動(dòng)態(tài)Sql之if標(biāo)簽的用法詳解
這篇文章主要介紹了MyBatis動(dòng)態(tài)Sql之if標(biāo)簽的用法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07Spring Data Jpa Mysql使用utf8mb4編碼的示例代碼
這篇文章主要介紹了Spring Data Jpa Mysql使用utf8mb4編碼的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11解決安裝mysqlclient的時(shí)候出現(xiàn)Microsoft Visual C++ 14.0 is required報(bào)錯(cuò)
這篇文章主要介紹了解決安裝mysqlclient的時(shí)候出現(xiàn)Microsoft Visual C++ 14.0 is required報(bào)錯(cuò)問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11Springboot MongoDB實(shí)現(xiàn)自增序列的項(xiàng)目實(shí)踐
在某些特定的業(yè)務(wù)場(chǎng)景下,會(huì)需要使用自增的序列來(lái)維護(hù)數(shù)據(jù),本文主要介紹了Springboot MongoDB實(shí)現(xiàn)自增序列的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07java開發(fā)web前端cookie session及token會(huì)話機(jī)制詳解
如果把人體比作一個(gè)web系統(tǒng)的話,cookie、session和token就好像人體的經(jīng)絡(luò)和血管一樣,而web系統(tǒng)中的數(shù)據(jù),就好像人體的血液一樣。血液依靠著血管在人體內(nèi)流動(dòng),就如數(shù)據(jù)根據(jù)cookie和session機(jī)制在web系統(tǒng)中流動(dòng)一樣2021-10-10