一、環境準備
在使用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-hk/n/287408.html