JavaWord轉PDF詳解

一、環境準備

在使用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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-23 13:07
下一篇 2024-12-23 13:07

相關推薦

  • Python基礎教程第三版PDF下載

    熟練掌握Python編程語言可以讓你輕鬆地用代碼解決很多問題,Python基礎教程第三版是一本適合初學者的Python教程。本文將從幾個方面詳細介紹Python基礎教程第三版PDF…

    編程 2025-04-29
  • 使用Spire.PDF進行PDF文檔處理

    Spire.PDF是一款C#的PDF庫,它可以幫助開發者快速、簡便地處理PDF文檔。本篇文章將會介紹Spire.PDF庫的一些基本用法和常見功能。 一、PDF文檔創建 創建PDF文…

    編程 2025-04-29
  • Python零基礎PDF下載

    本文將為大家介紹如何使用Python下載PDF文件,適合初學者上手實踐。 一、安裝必要的庫 在Python中,我們需要使用urllib和requests庫來獲取PDF文件的鏈接,並…

    編程 2025-04-29
  • 智能風控 Python金融風險PDF

    在金融交易領域,風險控制是一項重要任務。智能風控是指通過人工智能技術和算法模型,對金融交易進行風險識別、風險預警、風險控制等操作。Python是一種流行的編程語言,具有方便、易用、…

    編程 2025-04-29
  • Python編程與數據分析應用PDF

    Python編程是一門功能強大的編程語言,其易讀易寫、可擴展性強等優點使得它在各個領域都有着廣泛的應用。而數據分析也是當今各行各業的基本需求,Python語言通過優秀的數據分析庫也…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • 文本數據挖掘與Python應用PDF

    本文將介紹如何使用Python進行文本數據挖掘,並將着重介紹如何應用PDF文件進行數據挖掘。 一、Python與文本數據挖掘 Python是一種高級編程語言,具有簡單易學、代碼可讀…

    編程 2025-04-28
  • Python生成PDF文檔

    Python是一門廣泛使用的高級編程語言,它可以應用於各種領域,包括Web開發、數據分析、人工智能等。在這些領域的應用中,有很多需要生成PDF文檔的需求。Python有很多第三方庫…

    編程 2025-04-28
  • 使用Python為PDF添加書籤

    Python是一種強大靈活的編程語言,它支持大量的庫和模塊,其中就包括pdf模塊。使用Python處理PDF文件可以有效地提高處理效率和減輕工作量。其中,添加書籤是PDF處理的常見…

    編程 2025-04-28
  • 電子琴入門教程pdf下載

    作為一名電子琴愛好者,了解電子琴的基礎知識是必要的,而電子琴入門教程PDF的下載則是學習電子琴知識的好方法。 一、找到可靠的PDF下載網站 在互聯網上能夠找到很多電子琴入門教程的P…

    編程 2025-04-27

發表回復

登錄後才能評論