Java 中的 HTML 到 PDF
本教程指導Java開發者如何使用IronPDF庫將HTML內容轉換成像素完美的PDF。(可攜式文件格式)documents.*
IronPDF 是一款功能齊全的 PDF 轉換器和 PDF 處理庫。 IronPDF 可用於两者.NET和Java程式語言。 本教程涵蓋了將HTML內容轉換的庫使用方法。(文件,標記等)在 Java 應用程式中。 在 .NET 應用程式中將 HTML 轉換為 PDF 的教程可在HTML 轉 PDF .NET 教程.
概述
如何在 Java 中將 HTML 轉換為 PDF
- 安裝Java庫以將HTML轉換為PDF
- 使用將 HTML 字串轉換為 PDF 文件
將HTML渲染為PDF
方法 - 從網站 URL 生成 PDF 文件(Java)
- 將HTML文件轉換為PDF文件
將HTML檔案渲染為PDF
方法 - 將生成的 PDF 另存為新文件
入門
立即在您的專案中使用IronPDF,並享受免費試用。
1. 安裝 IronPDF PDF 庫適用於 Java
有兩種方式可以整合IronPDF在 Java 專案中的程式庫:
在 Maven 配置的 Java 項目中添加 IronPDF 作為依賴
下載 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.*;
2.2. 設定授權金鑰(可選)
IronPDF for Java 是免費使用的。 然而,對於免費用戶,它會在PDF文件上添加平鋪背景的浮水印。(如下圖所示).
要使用IronPDF生成沒有浮水印的PDF,必須使用有效的授權密鑰。 下面的代碼行配置了帶有許可證密鑰的庫。
// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
許可證密鑰應在生成PDF文件或自訂文件內容之前設置。 我們建議您在所有其他程式碼之前調用 setLicenseKey
方法。
從 IronPDF 授權頁面購買授權金鑰或聯繫我們以獲取試用授權金鑰.
2.3 設定日誌檔案位置(可選)
預設情況下(假設已安裝了 SLF4J 提供者)IronPDF會將日誌訊息生成到位於Java應用程式根目錄的名為IronPdfEngine.log的文字檔案中。
要指定日誌文件的不同名稱和位置,請使用 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
方法可以從位於電腦或網絡驅動器上的資料夾中獲取圖片、樣式表和腳本。下面的例子生成了一個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");
上述代碼的結果顯示在下圖中。
第二(可選的)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");
下方顯示所生成的 PDF 文件格式。
了解有關將網頁轉換為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 文件已經與其 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的渲染能力。
進一步了解如何使用我們精選的代碼示例來進行Java開發中的HTML轉PDF轉換器。程式碼範例部分。
讀取此 PDF 生成設定範例程式碼了解如何在轉換過程中自訂 PDF 文件的外觀。
提取 PDF 內容(從 PDF 提取文本和從PDF中提取圖片)從文件中,通过 PDF 压缩优化档案大小,和使用 IronPrint 功能以程式化方式列印 PDF 文件.
研究IronPDF Java API 參考頁面在
PdfDocument
類別上進行操作,以獲得對渲染 HTML 為 PDF 的更大控制。
觀看 HTML 轉 PDF 教學影片
快速指南
在 GitHub 上探索此教學
此項目的原始碼可在 GitHub 上獲得。
使用此代碼可以在幾分鐘內輕鬆啟動。該項目保存為IntelliJ IDEA項目,但可以導入到其他常見的Java IDE中。
Java HTML 轉換成 PDF