HTML轉PDF在Java中
本教程指導Java開發人員如何使用IronPDF庫將HTML內容轉換為像素完美的PDF (可攜式文件格式) 文件.
IronPDF 是一個功能齊全的 PDF 轉換器和 PDF 處理庫。IronPDF 可用於 .NET 和 Java 程式語言。本教程涵蓋了使用該庫將HTML內容轉換 (文件,標記等) 在 Java 應用程序中。在 .NET 應用程序中轉換 HTML 為 PDF 的教學可用 這裡.
概述
如何在 Java 中將 HTML 轉換為 PDF
- 安裝Java庫以將HTML轉換為PDF
- 使用將 HTML 字串轉換為 PDF 文件
將HTML渲染為PDF
方法 - 從網站 URL 生成 PDF 文件(Java)
- 將HTML文件轉換為PDF文件
將HTML檔案渲染為PDF
方法 - 將生成的 PDF 另存為新文件
入門
1. 安裝 IronPDF PDF Library for Java
有兩種方式將 IronPDF Java 項目中的庫:
在使用 Maven 配置的 Java 項目中將 IronPDF 添加為依賴項
- 下載 IronPDF JAR 文件並手動將其添加到項目類路徑中
以下部分將簡要介紹兩種安裝方法。
選項1:安裝 IronPDF 作為 Maven 依賴項
要在使用 Maven 的 Java 專案中安裝 IronPDF,請將以下 artifact 添加到 Java 專案的 pom.xml 文件的依賴部分。
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>com.ironsoftware</artifactId>
<version>2024.9.1</version>
</dependency>
第一個工件引用了 最新版本 IronPDF庫的。第二個工件引用了一個 SL4J 實現。這個依賴項需要啟用IronPDF的渲染引擎在執行期間生成日誌消息。軟體工程師可以用其他日誌提供者替換這個依賴項。 (例如 日志回傳 和 Log4J);或者如果他們不需要或不希望記錄,則完全忽略它。
在Java項目根目錄的終端中運行 mvn install
命令以下載前面提到的庫。
選項2:手動安裝 IronPDF JAR
不喜歡使用 Maven 或任何其他依賴管理系統的開發者需要 下載 IronPDF 庫的 JAR 文件 (和可選的 SL4J 實施) 並手動將其添加到他們專案的類路徑中。
從以下位置直接下載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.*;
2.2. 設置授權金鑰 (可選的)
IronPDF for Java 可以免費使用。然而,對於免費使用者,它會在 PDF 文件上添加帶有平鋪背景的浮水印。 (如下圖所示).
若要使用 IronPDF 生成無浮水印的 PDF,該程式庫必須使用有效的授權碼。以下的程式碼行將程式庫配置為使用授權碼。
// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
許可證密鑰應該在生成PDF文件或自定義文件內容之前設置。我們建議您在所有其他代碼行之前調用setLicenseKey
方法。
購買許可證密鑰 從我們的授權頁面,或聯繫我們以 獲取試用授權金鑰.
2.3 設定日誌文件位置 (可選的)
默認情況下 (假設已安裝了 SLF4J 提供者)IronPDF 會產生記錄訊息到名為 IronPdfEngine.log 的文字檔,該檔案位於 Java 應用程式的根目錄。
要指定記錄檔的不同名稱和位置,請使用 Settings.setLogPath
方法:
// Set a log path
Settings.setLogPath(Paths.get("IronPdfEngine.log"));
請注意: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");
renderHtmlAsPdf
處理所有 HTML、CSS 和 JavaScript 內容的方式與現代、符合標準的瀏覽器相同。這有助於軟體工程師創建看起來與網頁瀏覽器中顯示完全相同的 PDF 文檔。
renderHtmlAsPdf
方法可以從計算機或網路驅動器上的資料夾中獲取圖像、樣式表和腳本。下面的例子從引用 assets
資料夾中的 CSS 文件和圖像的 HTML 生成了 PDF 文檔:
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");
上述代碼的結果顯示在下圖中。
第二 (可選的) renderHtmlAsPdf
的參數允許開發人員指定一個基底路徑來引用網頁資源。這個路徑可以是本地文件系統的目錄,也可以是 URL 路徑。
了解更多有關 renderHtmlAsPdf
方法的資訊,請參閱 這個程式碼範例,或閱讀有關內容 API 參考文獻 頁面。
2.5. 從 URL 創建 PDF
開發人員可以使用 IronPDF 的 PdfDocument.renderUrlAsPdf
方法將線上網頁轉換為 PDF 文件。
以下示例將維基百科文章渲染為 PDF 內容。
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
下方顯示所生成的 PDF 文件格式。
了解有關將網頁轉換成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 文件已經與其 CSS 文件和 JavaScript 文件一起保存到名為 invoices 的文件夾中。我們可以使用 IronPDF 來轉換 HTML 文件,如下所示:
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
與將 HTML 字串轉換為 PDF 的範例一樣,IronPDF 能夠正確解析 HTML 文件中的任何相對 URL,以找到它們在檔案系統中的正確路徑。因此,此範例生成的 PDF 檔案能夠完美捕捉任何引用的樣式表和腳本對網頁的視覺影響。
3. 進一步閱讀
我們只是簡單介紹了 IronPDF 的 HTML 到 PDF 渲染功能。
請進一步瞭解如何使用 HTML 到 PDF 轉換器進行 Java 開發,參考我們精心挑選的代碼範例,詳情請參閱我們的 程式碼範例 區段。
讀取 這個程式碼範例 了解在轉換過程中如何自訂PDF文件的外觀。
- 提取 PDF 內容 (文字 和 圖像) 從文件中, 優化檔案大小,和 以程式化方式列印 PDFs
學習 IronPDF Java API 參考文件 在 PdfDocument
類別的頁面上,可以對渲染的 HTML 到 PDF 進行更大的控制。
觀看 HTML 轉 PDF 教學影片
快速指南
在 GitHub 上探索此教學
此項目的原始碼可在 GitHub 上獲得。
使用此代碼可以在幾分鐘內輕鬆啟動。該項目保存為IntelliJ IDEA項目,但可以導入到其他常見的Java IDE中。
Java HTML 轉換成 PDF