Java實(shí)現(xiàn)將Doc/Docx格式的Word文檔轉(zhuǎn)換為PDF文件
我們發(fā)送Word文檔給別人的時(shí)候,可以考慮將文檔轉(zhuǎn)換為PDF文件,使其能夠在不同的設(shè)備上呈現(xiàn)出相同的外觀,同時(shí)也方便查看者在不安裝MS Word的情況下查看。本文將演示如何通過(guò)Java將Word文檔轉(zhuǎn)換為PDF、PDF/A和密碼保護(hù)的PDF文件。
本文包含以下內(nèi)容:
- Word文檔轉(zhuǎn)換為PDF格式
- Word文檔轉(zhuǎn)換為PDF/A格式
- Word文檔轉(zhuǎn)換為帶密碼的PDF文檔
添加依賴項(xiàng)
方法一:Maven添加
如果你使用Maven,將下面的代碼復(fù)制到項(xiàng)目中的pom.xml文件中,即可輕松添加JAR文件到你的應(yīng)用程序中。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc.free</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>方法二:手動(dòng)添加
如果沒(méi)有使用Maven,可以從Free Spire.Doc for Java官網(wǎng)下載JAR文件,解壓下載的zip文件后,將lib文件夾下的Spire.Doc.jar文件導(dǎo)入到你的項(xiàng)目中即可。
將Word文檔轉(zhuǎn)換為PDF格式
用Spire.Doc for Java將Word文檔轉(zhuǎn)換為PDF格式的操作非常簡(jiǎn)單,只需要下面的兩個(gè)步驟:
- 創(chuàng)建 Document 類的對(duì)象,并將Word文檔的文件路徑作為參數(shù)傳給該類的構(gòu)造函數(shù)。
- 調(diào)用 Document.saveToFile(filePath, FileFormat.PDF) 方法,將文檔保存為PDF格式。
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class wordToPDF {
public static void main(String[] args) {
//創(chuàng)建 Document 類的對(duì)象,并載入Word文檔
Document doc = new Document("示例.docx");
//將文檔保存為PDF格式
doc.saveToFile("Word轉(zhuǎn)PDF.pdf", FileFormat.PDF);
}
}

將Word文檔轉(zhuǎn)換為PDF/A格式
PDF/A是一種特殊的PDF格式,用于長(zhǎng)期保存電子文檔。Spire.Doc for Java支持將Word轉(zhuǎn)換為以下PDF/A文檔:
- PDF/A-1a
- PDF/A-1b
- PDF/A-2a
- PDF/A-2b
- PDF/A-2u
- PDF/A-3a
- PDF/A-3b
- PDF/A-3u
- PDF/x-1a:2001
以下是將Word文檔轉(zhuǎn)換為PDF/A文檔的操作步驟:
- 創(chuàng)建 Document 類的對(duì)象,并將Word文檔的文件路徑作為參數(shù)傳遞給該類的構(gòu)造函數(shù)。
- 創(chuàng)建 ToPdfParameterList 類的對(duì)象。
- 使用 Topdfparameterlist.setpdfconformancelevel(PdfConformanceLevel) 方法設(shè)置PDF文檔的一致性級(jí)別。
- 調(diào)用 Document.saveToFile(filePath,ToPdfParameterList) 方法將Word文檔保存為PDF格式。
import com.spire.doc.Document;
import com.spire.doc.ToPdfParameterList;
import com.spire.pdf.PdfConformanceLevel;
public class wordToPDFA {
public static void main(String[] args) {
//創(chuàng)建 Document 類的對(duì)象,并載入Word文檔
Document doc = new Document("示例.docx");
//創(chuàng)建ToPdfParameterList類的對(duì)象
ToPdfParameterList parameterList = new ToPdfParameterList();
//設(shè)置PDF文檔的一致性級(jí)別
parameterList.setPdfConformanceLevel(PdfConformanceLevel.Pdf_A_1_A);
//將文檔保存為PDF/A格式
doc.saveToFile("Word轉(zhuǎn)PDFA.pdf", parameterList);
}
}

將Word文檔轉(zhuǎn)換為帶密碼的PDF文檔
你也可以在轉(zhuǎn)換Word文檔為PDF文檔時(shí)對(duì)其加密,以下是操作步驟:
- 創(chuàng)建 Document 類的對(duì)象,將Word文檔的文件路徑作為參數(shù)傳給該類的構(gòu)造函數(shù)。
- 創(chuàng)建 ToPdfParameterList 類的對(duì)象。
- 用 ToPdfParameterList.getPdfSecurity().encrypt(openPassword, permissionPassword, PdfPermissionsFlags, PdfEncryptionKeySize) 方法為PDF設(shè)置打開(kāi)密碼和權(quán)限密碼。
- 調(diào)用 Document.saveToFile(filePath, ToPdfParameterList) 方法,將Word文檔保存為PDF格式。
import com.spire.doc.Document;
import com.spire.doc.ToPdfParameterList;
import com.spire.pdf.security.PdfEncryptionKeySize;
import com.spire.pdf.security.PdfPermissionsFlags;
public class wordToPDFWithPassword {
public static void main(String[] args) {
//創(chuàng)建 Document 類的對(duì)象,并載入Word文檔
Document doc = new Document("示例.docx");
//創(chuàng)建ToPdfParameterList類的對(duì)象
ToPdfParameterList toPdf = new ToPdfParameterList();
//設(shè)置PDF打開(kāi)密碼和權(quán)限密碼
String password = "password";
toPdf.getPdfSecurity().encrypt(password, password, PdfPermissionsFlags.None, PdfEncryptionKeySize.Key_128_Bit);
//將文檔保存為帶密碼的PDF文檔
doc.saveToFile("Word轉(zhuǎn)帶密碼PDF.pdf", toPdf);
}
}

拓展
本文介紹了如何使用Free Spire.Doc for Java提供的Document.saveToFile()方法將Word轉(zhuǎn)換為PDF。除了PDF,你還可以使用Document.saveToFile()方法將Word文檔轉(zhuǎn)換成其他文件格式,如Rtf, Html, Odt, Txt, Epub, PostScript, Xml, Svg, XPS等。
到此這篇關(guān)于Java實(shí)現(xiàn)將Doc/Docx格式的Word文檔轉(zhuǎn)換為PDF文件的文章就介紹到這了,更多相關(guān)Java Word轉(zhuǎn)PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot?RestTemplate設(shè)置超時(shí)時(shí)間的簡(jiǎn)單方法
學(xué)習(xí)springboot ,RestTemplate的使用場(chǎng)景非常非常多,比如springcloud中的服務(wù)消費(fèi),下面這篇文章主要給大家介紹了關(guān)于Springboot?RestTemplate設(shè)置超時(shí)時(shí)間的簡(jiǎn)單方法,需要的朋友可以參考下2022-01-01
SpringBoot3整合MyBatis出現(xiàn)異常:Property?'sqlSessionFactory&a
這篇文章主要介紹了SpringBoot3整合MyBatis報(bào)錯(cuò):Property?‘sqlSessionFactory‘?or?‘sqlSessionTemplate‘?are?required,其實(shí)不是個(gè)大問(wèn)題,只是自己編碼時(shí)遇到了,然后總結(jié)總結(jié)分享一下,如果有遇到類似問(wèn)題的,可以參考一下2022-11-11
Java實(shí)現(xiàn)企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成問(wèn)題
這篇文章主要介紹了請(qǐng)利用數(shù)軸來(lái)分界,定位。注意定義時(shí)需把獎(jiǎng)金定義成長(zhǎng)整型,需要的朋友可以參考下2017-02-02
java8新特性之stream流中reduce()求和知識(shí)總結(jié)
今天帶大家回顧Java8的新特性,文中對(duì)stream流中reduce()求和的相關(guān)知識(shí)作了詳細(xì)的介紹,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05
Java中的ThreadLocal與ThreadLocalMap詳解
這篇文章主要介紹了Java中的ThreadLocal與ThreadLocalMap詳解,ThreadLocal 是一個(gè)線程局部變量,其實(shí)的功用非常簡(jiǎn)單,就是為每一個(gè)使用該變量的線程都提供一個(gè)變量值的副本,是Java中一種較為特殊的線程綁定機(jī)制,需要的朋友可以參考下2023-09-09
詳解MyBatis Generator自動(dòng)創(chuàng)建代碼(dao,mapping,poji)
這篇文章主要介紹了詳解MyBatis Generator自動(dòng)創(chuàng)建代碼(dao,mapping,poji)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10

