Java 中的 HTML 到 PDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

本教程指導Java開發者如何使用IronPDF庫將HTML內容轉換成像素完美的PDF。(可攜式文件格式)documents.*

IronPDF 是一款功能齊全的 PDF 轉換器和 PDF 處理庫。 IronPDF 可用於两者.NETJava程式語言。 本教程涵蓋了將HTML內容轉換的庫使用方法。(文件,標記等)在 Java 應用程式中。 在 .NET 應用程式中將 HTML 轉換為 PDF 的教程可在HTML 轉 PDF .NET 教程.


概述


入門

立即在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer


1. 安裝 IronPDF PDF 庫適用於 Java

有兩種方式可以整合IronPDF在 Java 專案中的程式庫:

  1. 在 Maven 配置的 Java 項目中添加 IronPDF 作為依賴

  2. 下載 IronPDF JAR 文件並手動將其添加到項目類路徑中。

    以下部分將簡要介紹兩種安裝方法。

選項1:將IronPDF安裝為Maven依賴

要在使用 Maven 的 Java 項目中安裝 IronPDF,請將以下元件添加到 Java 項目的 pom.xml 檔案的依賴性部分。

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>com.ironsoftware</artifactId>
   <version>2024.11.4</version>
</dependency>

第一個工件引用了IronPDF 庫的最新版本. 第二個工件參考了一個 SL4J 實作。 此依賴項是必需的,以便啟用 IronPDF 的渲染引擎在執行期間生成日誌訊息。 軟體工程師可以將此依賴項替換為其他記錄提供者。(例如 日志回傳Log4J); 或者如果他們不需要或不想要記錄功能,可以完全省略。

在 Java 項目的根目錄中的終端機裡運行 mvn install 命令以下載先前提到的庫。

選項 2:手動安裝 IronPDF JAR

開發人員如果不希望使用 Maven 或其他任何依賴管理系統,將需要!!--inline-anchor_ironpdfjava-fatjar{下載 IronPDF 庫的 JAR 文件}--!! (和可選的 SL4J 實施)並手動將其添加到他們項目的類路徑中。

直接從下載IronPDF JAR檔案IronPDF JAR 下載 (或從 Maven 倉庫).


使用指南和程式範例

2. 將HTML轉換為PDF

本節展示了IronPDF的旗艦HTML到PDF渲染功能。

PdfDocument 類別是 IronPDF 所有 PDF 文件渲染和操作功能的入口點。 該類包含一組強大的方法,用於將HTML轉換為PDF文件,以支持以下三種用例:從HTML字符串/標記轉換、從HTML文件轉換以及從URL轉換。 本節將簡要介紹每個用例,並提供鏈接以獲取更多信息。

2.1 導入 IronPDF 套件

IronPDF 的所有轉換和處理組件都包含在 com.ironsoftware.ironpdf 包中。

在 Java 原始檔案的頂部包含以下的導入語句(IronPDF 的使用範圍)使這些元件能夠被應用程式的源代碼訪問。

// Import statement for IronPDF for Java
import com.ironsoftware.ironpdf.*;
JAVA

2.2. 設定授權金鑰(可選)

IronPDF for Java 是免費使用的。 然而,對於免費用戶,它會在PDF文件上添加平鋪背景的浮水印。(如下圖所示).

Html To Pdf 23 related to 2.2. 設定授權金鑰(可選)

前往 ironpdf.com/java/licensing/ 獲取授權金鑰,無水印轉換和操作 PDF 檔案。

要使用IronPDF生成沒有浮水印的PDF,必須使用有效的授權密鑰。 下面的代碼行配置了帶有許可證密鑰的庫。

// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
JAVA

許可證密鑰應在生成PDF文件或自訂文件內容之前設置。 我們建議您在所有其他程式碼之前調用 setLicenseKey 方法。

從 IronPDF 授權頁面購買授權金鑰或聯繫我們以獲取試用授權金鑰.

2.3 設定日誌檔案位置(可選)

預設情況下(假設已安裝了 SLF4J 提供者)IronPDF會將日誌訊息生成到位於Java應用程式根目錄的名為IronPdfEngine.log的文字檔案中。

要指定日誌文件的不同名稱和位置,請使用 Settings.setLogPath 方法:

// Set a log path
Settings.setLogPath(Paths.get("IronPdfEngine.log"));
JAVA

請注意Settings.setLogPath 必須在使用任何 PDF 轉換和操作方法之前調用。

2.4. 從 HTML 字串建立 PDF

PdfDocument.renderHtmlAsPdf 將 HTML 內容的字符串轉換為 PDF 文件。

以下程式碼範例使用單一標題元素來生成新文件。

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
pdf.saveAs("htmlstring_to_pdf.pdf");
JAVA
Html To Pdf 5 related to 2.4. 從 HTML 字串建立 PDF

將 HTML 標記轉換為 PDF 文件使用 PdfDocument.renderHtmlAsPdf此方法可以使用所有符合W3C標準的有效HTML和CSS標記生成PDF文件。

renderHtmlAsPdf 能像現代標準兼容的瀏覽器一樣處理所有 HTML、CSS 和 JavaScript 內容。 這有助於軟體工程師建立PDF文件,使其看起來與在網頁瀏覽器中顯示的完全相同。

renderHtmlAsPdf方法可以從位於電腦或網絡驅動器上的資料夾中獲取圖片、樣式表和腳本。下面的例子生成了一個PDF文件,該文件來自引用了位於assets資料夾中的CSS文件和圖片的HTML:

String html = "<html><head><title>Hello world!</title><link rel='stylesheet' href='assets/style.css'></head><body><h1>Hello from IronPDF!</h1><a href='https://ironpdf.com/java/'><img src='assets/logo.png' /></a></body></html>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
pdf.saveAs("output.pdf");
JAVA

上述代碼的結果顯示在下圖中。

Html To Pdf 24 related to 2.4. 從 HTML 字串建立 PDF

PdfDocument.renderHtmlAsPdf 能渲染各種豐富的媒體元素。如果可以在Chrome中顯示,那麼 將HTML渲染為PDF 會呈現它!

第二(可選的)renderHtmlAsPdf 的參數允許開發者指定一個基本路徑,用於引用網絡資產。 此路徑可以是本地文件系統上的目錄,甚至是URL路徑。

了解更多關於 renderHtmlAsPdf 方法的資訊。此代碼示例用於使用HTML創建PDF,或閱讀有關內容PdfDocument 類的 API 參考頁面.

2.5. 從網址建立 PDF

開發人員可以使用IronPDF的PdfDocument.renderUrlAsPdf方法將在線網頁轉換為PDF文件。

下一個示例將維基百科文章渲染為PDF內容。

PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
JAVA

下方顯示所生成的 PDF 文件格式。

Html To Pdf 7 related to 2.5. 從網址建立 PDF

IronPDF Java 庫可以轉換託管在線的網頁中的 HTML 內容。使用 PdfDocument.renderUrlAsPdf 實現的方法。

了解有關將網頁轉換為PDF內容的更多信息將此代碼範例用於將 URL 轉換為 PDF。.

2.6. 從 HTML 檔案建立 PDF

IronPDF 也可以將存儲在本地文件系統上的 HTML 文檔直接轉換成其等效的 PDF 格式。

下一個代碼示例使用 此發票作為真實世界的示範 IronPDF 在轉換 HTML 文件方面的表現如何。

這裡為了方便重現了發票的HTML標記:


<html>
<head>
    <meta charset="utf-8">
    <title>Invoice</title>
    <link rel="stylesheet" href="style.css">
    <link rel="license" href="https://www.opensource.org/licenses/mit-license/">
    <script src="script.js"></script>
</head>
<body>
<header>
    <h1>Invoice</h1>
    <address contenteditable>
        <p>Jonathan Neal</p>
        <p>101 E. Chapman Ave<br>Orange, CA 92866</p>
        <p>(800) 555-1234</p>
    </address>
    <span><img alt="" src="http://www.jonathantneal.com/examples/invoice/logo.png"><input type="file" accept="image/*"></span>
</header>
<article>
    <h1>Recipient</h1>
    <address contenteditable>
        <p>Some Company<br>c/o Some Guy</p>
    </address>
    <table class="meta">
        <tr>
            <th><span contenteditable>Invoice #</span></th>
            <td><span contenteditable>101138</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Date</span></th>
            <td><span contenteditable>January 1, 2012</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Due</span></th>
            <td><span id="prefix" contenteditable>$</span><span>600.00</span></td>
        </tr>
    </table>
    <table class="inventory">
        <thead>
        <tr>
            <th><span contenteditable>Item</span></th>
            <th><span contenteditable>Description</span></th>
            <th><span contenteditable>Rate</span></th>
            <th><span contenteditable>Quantity</span></th>
            <th><span contenteditable>Price</span></th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td><a class="cut">-</a><span contenteditable>Front End Consultation</span></td>
            <td><span contenteditable>Experience Review</span></td>
            <td><span data-prefix>$</span><span contenteditable>150.00</span></td>
            <td><span contenteditable>4</span></td>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        </tbody>
    </table>
    <a class="add">+</a>
    <table class="balance">
        <tr>
            <th><span contenteditable>Total</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Paid</span></th>
            <td><span data-prefix>$</span><span contenteditable>0.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Balance Due</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
    </table>
</article>
<aside>
    <h1><span contenteditable>Additional Notes</span></h1>
    <div contenteditable>
        <p>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
    </div>
</aside>
</body>
</html>

<html>
<head>
    <meta charset="utf-8">
    <title>Invoice</title>
    <link rel="stylesheet" href="style.css">
    <link rel="license" href="https://www.opensource.org/licenses/mit-license/">
    <script src="script.js"></script>
</head>
<body>
<header>
    <h1>Invoice</h1>
    <address contenteditable>
        <p>Jonathan Neal</p>
        <p>101 E. Chapman Ave<br>Orange, CA 92866</p>
        <p>(800) 555-1234</p>
    </address>
    <span><img alt="" src="http://www.jonathantneal.com/examples/invoice/logo.png"><input type="file" accept="image/*"></span>
</header>
<article>
    <h1>Recipient</h1>
    <address contenteditable>
        <p>Some Company<br>c/o Some Guy</p>
    </address>
    <table class="meta">
        <tr>
            <th><span contenteditable>Invoice #</span></th>
            <td><span contenteditable>101138</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Date</span></th>
            <td><span contenteditable>January 1, 2012</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Due</span></th>
            <td><span id="prefix" contenteditable>$</span><span>600.00</span></td>
        </tr>
    </table>
    <table class="inventory">
        <thead>
        <tr>
            <th><span contenteditable>Item</span></th>
            <th><span contenteditable>Description</span></th>
            <th><span contenteditable>Rate</span></th>
            <th><span contenteditable>Quantity</span></th>
            <th><span contenteditable>Price</span></th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td><a class="cut">-</a><span contenteditable>Front End Consultation</span></td>
            <td><span contenteditable>Experience Review</span></td>
            <td><span data-prefix>$</span><span contenteditable>150.00</span></td>
            <td><span contenteditable>4</span></td>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        </tbody>
    </table>
    <a class="add">+</a>
    <table class="balance">
        <tr>
            <th><span contenteditable>Total</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Amount Paid</span></th>
            <td><span data-prefix>$</span><span contenteditable>0.00</span></td>
        </tr>
        <tr>
            <th><span contenteditable>Balance Due</span></th>
            <td><span data-prefix>$</span><span>600.00</span></td>
        </tr>
    </table>
</article>
<aside>
    <h1><span contenteditable>Additional Notes</span></h1>
    <div contenteditable>
        <p>A finance charge of 1.5% will be made on unpaid balances after 30 days.</p>
    </div>
</aside>
</body>
</html>
HTML

假設 HTML 文件已經與其 CSS 文件和 JavaScript 文件一起保存到名為 invoices 的文件夾中。我們可以使用 IronPDF 來轉換 HTML 文件,如下所示:

PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
JAVA

如同HTML字符串到PDF轉換示例,IronPDF正確解析HTML文檔中的任何相對URL,使其指向文件系統中的正確路徑。 因此,這個範例產生的PDF檔案能夠完美捕捉任何引用的樣式表和腳本在網頁上通常具有的視覺影響。

3. 進一步閱讀

我們只是略微觸及了IronPDF將HTML轉換為PDF的渲染能力。

進一步了解如何使用我們精選的代碼示例來進行Java開發中的HTML轉PDF轉換器。程式碼範例部分。

  1. 讀取此 PDF 生成設定範例程式碼了解如何在轉換過程中自訂 PDF 文件的外觀。

  2. 使用 IronPDF 生成 PDF 文件自訂頁首和頁尾, 邊距大小, 頁面尺寸, 浮水印,等等。

  3. 提取 PDF 內容(從 PDF 提取文本從PDF中提取圖片)從文件中,通过 PDF 压缩优化档案大小,和使用 IronPrint 功能以程式化方式列印 PDF 文件.

    研究IronPDF Java API 參考頁面PdfDocument 類別上進行操作,以獲得對渲染 HTML 為 PDF 的更大控制。

觀看 HTML 轉 PDF 教學影片


快速指南

Cps Intellij related to 快速指南

下載此教程作為 Java 原始碼

此教程的完整HTML到PDF Java源碼可作為壓縮的IntelliJ項目免費下載。

下載

在 GitHub 上探索此教學

此項目的原始碼可在 GitHub 上獲得。

使用此代碼可以在幾分鐘內輕鬆啟動。該項目保存為IntelliJ IDEA項目,但可以導入到其他常見的Java IDE中。

Java HTML 轉換成 PDF
Github Icon related to 快速指南
Documentation related to 快速指南

查看 API 參考文件

探索 IronPDF 的 API 參考,概述 IronPDF 所有功能、命名空間、類別、方法欄位和枚舉的詳細資訊。

查看 API 參考文件