一、環境準備
在使用JavaWord轉PDF之前,需要保證操作系統已經安裝了Microsoft Office Word和Adobe Acrobat,同時需要在項目中引入iText和poi兩個jar包。
//iText jar包引入 com.itextpdf itextpdf 5.5.13 //poi jar包引入 org.apache.poi poi 3.17
二、代碼實現Word轉PDF
這裡介紹兩種實現Word轉PDF的方式,一種是使用iText方式,另一種是使用poi方式。
1.使用iText實現Word轉PDF
使用iText方式,主要是通過解析Word中的內容,將解析出來的內容寫入PDF文件。
public void wordToPdf(String sourcePath, String targetPath) throws Exception {
// 1.創建word文檔輸入流對象
FileInputStream wordFileStream = new FileInputStream(sourcePath);
// 2.創建word文檔對象
XWPFDocument document = new XWPFDocument(wordFileStream);
// 3.創建PDF文檔輸出流對象
FileOutputStream pdfFileStream = new FileOutputStream(targetPath);
// 4.創建PDF文檔對象
PdfWriter writer = PdfWriter.getInstance(document, pdfFileStream);
writer.setInitialLeading(12);
// 5.打開PDF文檔
document.open();
// 6.解析word文檔內容
List paragraphList = document.getParagraphs();
for (XWPFParagraph paragraph : paragraphList) {
String text = paragraph.getText();
document.add(new Paragraph(text));
}
// 7.關閉PDF文檔
document.close();
pdfFileStream.close();
wordFileStream.close();
}
2.使用poi實現Word轉PDF
使用poi方式,需要首先將Word文檔轉化為html格式,然後再通過解析html文件內容,將內容寫入PDF文件。
public void wordToPdf(String sourcePath, String targetPath) throws Exception {
// 1.創建word文檔輸入流對象
FileInputStream wordFileStream = new FileInputStream(sourcePath);
// 2.創建word文檔對象
HWPFDocument document = new HWPFDocument(wordFileStream);
// 3.創建word文檔內容輸出流對象
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
wordToHtmlConverter.processDocument(document, byteArrayOutputStream);
// 4.創建html文檔字符串
String html = byteArrayOutputStream.toString();
// 5.創建PDF文檔輸出流對象
FileOutputStream pdfFileStream = new FileOutputStream(targetPath);
ByteArrayOutputStream pdfWriterByteStream = new ByteArrayOutputStream();
Document pdfDocument = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument, pdfWriterByteStream);
// 6.打開PDF文檔
pdfDocument.open();
// 7.解析html文檔內容
ByteArrayOutputStream htmlStream = new ByteArrayOutputStream();
htmlStream.write(html.getBytes());
XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, pdfDocument, new ByteArrayInputStream(htmlStream.toByteArray()));
// 8.關閉PDF文檔
pdfDocument.close();
pdfFileStream.write(pdfWriterByteStream.toByteArray());
pdfFileStream.flush();
pdfFileStream.close();
wordFileStream.close();
}
三、轉換效果展示
下面分別展示使用iText和poi方式實現的Word轉PDF效果。
1.iText方式實現Word轉PDF效果
2.poi方式實現Word轉PDF效果
四、總結
本篇文章主要介紹了JavaWord轉PDF的實現方法,包括環境準備、iText方式實現和poi方式實現,並展示了轉換效果。希望對需要將Word文檔轉換為PDF格式的讀者有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/287408.html
微信掃一掃
支付寶掃一掃