在Java中將HTML轉換為PDF

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

IronPDF for Java讓開發者能夠直接從HTML內容生成PDF輸出,無需學習單獨的布局API。 此程式庫以現代瀏覽器相同的方式渲染HTML、CSS和JavaScript,因此PDF輸出與螢幕上顯示的一致。 本教程涵蓋了安裝、三種核心HTML轉PDF轉換方法,以及包括頁眉、頁腳、頁面大小和自訂邊界在內的格式化選項。

本教程使用IronPDF for Java。 一個涵蓋.NET版本的平行指南可以在HTML到PDF轉換教程 for .NET找到。 IronPDF也提供PythonNode.js版。

快速入門:將HTML轉換為PDF文件

從HTML字串轉換為PDF的最短路徑是三行Java程式碼:

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/quickstart.java
import com.ironsoftware.ironpdf.*;
// Convert an HTML string directly to a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save to disk
pdf.saveAs("output.pdf");
JAVA

今天就使用IronPDF開始專案,免費試用。

第一步:
green arrow pointer

目錄

如何將IronPDF新增到Java中的Maven專案?

將IronPDF新增到Maven專案需要在專案的pom.xml依賴塊中進行兩次條目。 第一個條目導入IronPDF程式庫; 第二個則新增SLF4J日誌提供者,以便IronPDF在執行期間能夠寫入引擎消息。

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/maven-dependency.xml
<dependency>
  <groupId>com.ironsoftware</groupId>
  <artifactId>ironpdf</artifactId>
  <version>2024.9.1</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>2.0.5</version>
</dependency>
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/maven-dependency.xml
<dependency>
  <groupId>com.ironsoftware</groupId>
  <artifactId>ironpdf</artifactId>
  <version>2024.9.1</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>2.0.5</version>
</dependency>
XML

ironpdf工件參考了最新的IronPDF for Java版本和變更日誌slf4j-simple依賴提供了一個基本的日誌後端。 您可以根據需要將其替換為LogbackLog4J,或者完全省略以抑制日誌輸出。

在新增這兩個條目後,從專案根目錄運行mvn install下載工件。 Maven將依賴解析到Maven Central

com.ironsoftware:ironpdf新增到您的pom.xml之前,檢查Maven Central頁面以確認最新版本號。

如何在Java中手動安裝IronPDF JAR?

不使用Maven或其他依賴管理器的專案可以通過直接下載JAR並將其包括在類路徑上來新增IronPDF。 導航至IronPDF for Java下載頁面並下載fat-JAR文件。

fat-JAR捆綁了所有依賴,因此除了主要工件之外不需要其他類路徑條目。 可以選擇性地下載SLF4J實現JAR以啟用日誌記錄。

使用IDE的庫管理面板將兩個JAR文件新增到專案的類路徑中,或者在從終端編譯和運行時指定-classpath條目。

如何將IronPDF導入我的Java源文件?

com.ironsoftware.ironpdf包包含所有轉換和處理組件。 在調用IronPDF方法的每個Java文件頂部放置以下導入語句。

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/import-statement.java
// Import all IronPDF components
import com.ironsoftware.ironpdf.*;
JAVA

一個具名特定類的目標導入也是有效的:import com.ironsoftware.ironpdf.PdfDocument;。 在探索過程中通常使用通配符導入。

如何設置IronPDF for Java中授權金鑰?

IronPDF for Java在未提供授權金鑰的情況下可免費使用,但會在所有生成或修改的PDF文件上應用平鋪浮水印。 要移除浮水印,請在調用任何轉換或操作方法之前提供有效的授權金鑰。

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-license-key.java
// Set the license key before any PDF operations
License.setLicenseKey("YOUR-LICENSE-KEY");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-license-key.java
// Set the license key before any PDF operations
License.setLicenseKey("YOUR-LICENSE-KEY");
JAVA

在應用程式啟動時,在調用任何setLicenseKey調用。 購買授權金鑰開始免費試用以生成沒有浮水印的PDF。

IronPDF 授權頁面,顯示如何取得授權金鑰以移除產生的 PDF 上的浮水印

有效的授權金鑰將從生成的PDF中移除平鋪浮水印。在IronPDF授權頁面獲得一個或請求免費試用。

設定日誌文件位置(可選)

預設情況下,IronPDF將引擎消息寫入應用程式根目錄中名為IronPdfEngine.log的文件。 要更改日誌文件路徑,請在執行任何PDF操作之前調用Settings.setLogPath

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-log-path.java
import java.nio.file.Paths;
// Redirect log output before using IronPDF
Settings.setLogPath(Paths.get("logs/ironpdf-engine.log"));
JAVA

請注意PdfDocument調用之前。 在開始轉換後調用它不會影響該會話。)]}

如何在Java中將HTML字串轉換為PDF?

PdfDocument.renderHtmlAsPdf(String html)將任何有效的HTML標記轉換為PDF文件。 該方法接受原始HTML字串並返回一個可保存、合併或進一步修改的PdfDocument物件。

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-string-to-pdf.java
// Convert a minimal HTML string to a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting document to disk
pdf.saveAs("html-string-output.pdf");
JAVA
來自 IronPDF renderHtmlAsPdf 的 PDF 輸出,顯示從 HTML 字串忠實渲染的 H1 標題

IronPDF將HTML標記直接渲染為像素精確的PDF。此處顯示的輸出由上面的程式碼範例生成。

渲染引擎基於Chromium,因此在Chrome中工作的任何HTML、CSS或JavaScript都將正確渲染在PDF中。 包括Flexbox布局、CSS Grid、Web字體、SVG和JavaScript驅動的圖表。

方法的重載版本接受第二個參數作為基本路徑:renderHtmlAsPdf(String html, String basePath)。 此基本路徑用於解決本地樣式表、圖像和腳本的相對引用。

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-string-with-assets.java
// HTML referencing local stylesheet and image
String html = "<html><head><link rel='stylesheet' href='style.css'></head>"
    + "<body><img src='logo.png'/><h1>Invoice</h1></body></html>";
// Provide the folder containing style.css and logo.png as the base path
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice-output.pdf");
JAVA

基本路徑可以指向本地文件系統上的目錄或遠程URL。 IronPDF在渲染過程中從該位置檢索引用的資源。

IronPDF renderHtmlAsPdf 輸出結果,顯示套用樣式表的完整頁面文件,並保留來自 HTML 原始碼的 CSS 樣式

提供基本路徑時,IronPDF會解析本地CSS和圖像引用以生成完全樣式化的PDF。

提示為使本地資源解析起作用,所有引用的文件必須可以從基本路徑存取。 使用正斜線的路徑可在Windows和Linux上正常運作。)]}

若要專注於此方法,請參見HTML字串轉PDF程式碼範例

如何在Java中將URL轉換為PDF?

PdfDocument.renderUrlAsPdf(String url)獲取給定URL的頁面,渲染完整的DOM(包括JavaScript執行)後將輸出保存為PDF。

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/url-to-pdf.java
// Render a live web page to PDF by URL
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
// Save the rendered document
pdf.saveAs("wikipedia-pdf-article.pdf");
JAVA
由 IronPDF 從維基百科 PDF 條目頁面產生的 PDF,顯示保留的多欄版面與導覽元素

IronPDF捕獲網頁的完整渲染狀態,包括JavaScript生成的動態內容。

Chromium渲染引擎獲取外部樣式表、字體和JavaScript文件,因此生成的PDF準確反映頁面的可視狀態。 此方法非常適合從網頁儀表板生成報告、存檔公共網頁內容或轉換依賴客戶端渲染的資料可視化。

重要URL到PDF轉換需要IronPDF運行的伺服器具備外部HTTP/HTTPS存取。 在部署到生產環境之前,請確保網路策略允許此操作。)]}

查看URL到PDF轉換範例以獲得其他選項,如自定義請求標頭和身份驗證。

如何在Java中將HTML文件轉換為PDF?

PdfDocument.renderHtmlFileAsPdf(String filePath)從本地文件系統讀取HTML文件並將其轉換為PDF。 該方法自動將HTML文件中的所有相對資源引用解析為文件目錄。

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-file-to-pdf.java
// Convert a local HTML file (with a linked CSS file) to PDF
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
// Save the resulting document
pdf.saveAs("invoice-from-file.pdf");
JAVA

該方法能正確處理多文件HTML專案。 在上述範例中,如果TestInvoice1.html連結到相同目錄中的樣式表,IronPDF會在渲染過程中應用該樣式表。 結果是與源文件的瀏覽器渲染外觀相匹配的PDF。

提示從伺服器應用程式調用renderHtmlFileAsPdf時,使用絕對文件路徑。 相對路徑會解析為JVM的工作目錄,可能與HTML文件的位置不同。)]}

此方法特別適用於在磁盤上維護HTML模板的PDF生成工作流程:發票生成器、報告模板和表單輸出系統是常見的用例。

如何在Java中設置PDF頁面大小和方向?

頁面大小和方向是通過ChromePdfRenderOptions類控制的。 建立一個renderHtmlAsPdf調用。

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/page-size-orientation.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Create rendering options for the PDF
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set paper size to A4
options.setPaperSize(PaperSize.A4);
// Set to landscape orientation
options.setPaperOrientation(PaperOrientation.Landscape);
// Apply options to the conversion
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Landscape Report</h1>", options);
pdf.saveAs("landscape-a4-report.pdf");
JAVA

A5Landscape

對於非標準尺寸,使用setCustomPaperSizeInInches(double width, double height)

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/custom-paper-size.java
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set a custom 100mm x 150mm page size
options.setCustomPaperSizeInMillimeters(100, 150);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<p>Custom size card</p>", options);
pdf.saveAs("custom-size-card.pdf");
JAVA

查看自訂PDF紙張尺寸範例以獲得完整版PaperSize常數和尺寸選項。

如何在Java中設置PDF的自訂邊界?

邊界大小也是通過ChromePdfRenderOptions設置的。 程式庫提供了獨立的設置程式,用於設置頂部、底部、左側和右側邊界,所有設置以毫米為單位。

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/custom-margins.java
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set all four margins in millimeters
options.setMarginTop(20);
options.setMarginBottom(20);
options.setMarginLeft(15);
options.setMarginRight(15);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<p>Document with custom margins</p>", options);
pdf.saveAs("custom-margins.pdf");
JAVA

將所有邊界設置為零將完全消除白色空間,這對於全版面設計如標籤、證書或圖形布局非常有用。

請注意IronPDF邊界值以毫米為單位。 在該邊啟用邊界的情況下的值為0。 請注意,列印驅動程式邊界與IronPDF邊界分開,因此內容可能仍會在列印時被剪裁。)]}

請存取自訂邊界範例查看範例程式碼。

Icon Quote related to 如何在Java中設置PDF的自訂邊界?

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic related to 如何在Java中設置PDF的自訂邊界?

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to 如何在Java中設置PDF的自訂邊界?

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle related to 如何在Java中設置PDF的自訂邊界?

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 如何在Java中設置PDF的自訂邊界?

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones related to 如何在Java中設置PDF的自訂邊界?

David Jones

首席軟體工程師,Agorus Build

查看案例研究

如何為PDF新增頁眉和頁腳?

IronPDF支持兩種型別的頁眉和頁腳:基於文字的(HtmlHeaderFooter)。 文字標頭配置快速; HTML標頭支持完全的樣式和圖像。

新增文字標頭和頁腳

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/text-header-footer.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
import com.ironsoftware.ironpdf.render.*;
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Configure a text-based header
TextHeaderFooter header = new TextHeaderFooter();
// Use merge fields: {page}, {total-pages}, {date}, {time}, {url}, {html-title}
header.setCenterText("Report Title");
header.setRightText("Page {page} of {total-pages}");
options.setTextHeader(header);
// Configure a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setCenterText("{date}");
options.setTextFooter(footer);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Annual Report</h1><p>Content here.</p>", options);
pdf.saveAs("report-with-headers.pdf");
JAVA

{html-title}合併字段在渲染時將被文件特定值替換。

新增HTML標頭

對於需要徽標、品牌色彩或複雜布局的標頭,使用HtmlHeaderFooter

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-header.java
import com.ironsoftware.ironpdf.headerfooter.*;
HtmlHeaderFooter header = new HtmlHeaderFooter();
header.setHtmlFragment(
    "<div style='background:#003366;color:white;padding:8px;font-family:Arial;'>"
    + "<img src='/images/logo.png' style='height:30px;float:left;'/>"
    + "<span style='line-height:30px;margin-left:10px;'>Company Report</span>"
    + "</div>"
);
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
options.setHtmlHeader(header);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Q3 Results</h1>", options);
pdf.saveAs("report-with-html-header.pdf");
JAVA

提示HTML標頭片段在它們自己的頁面上下文中渲染。 外部圖像路徑必須是絕對URL或可以從運行IronPDF的伺服器存取的路徑。)]}

請參考標頭和頁腳程式碼範例以獲得更多合併字段選項和多頁行為。

如何在Java中應用浮水印?

IronPDF通過將HTML內容蓋印在現有PDF頁面上來應用浮水印。 這種方法提供了對定位、透明度和樣式的完全控制。

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/watermark.java
import com.ironsoftware.ironpdf.*;
// Create the base PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Report</h1>");
// Apply a diagonal text watermark using HTML stamping
String watermarkHtml =
    "<div style='position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-45deg);"
    + "font-size:80px;color:rgba(200,0,0,0.15);font-family:Arial;font-weight:bold;"
    + "white-space:nowrap;pointer-events:none;'>CONFIDENTIAL</div>";
pdf.applyStamp(watermarkHtml);
pdf.saveAs("watermarked-report.pdf");
JAVA

applyStamp方法接受標準HTML/CSS。 使用半透明的rgba顏色來確保浮水印可見而不遮擋下面的文件內容。

要獲知圖像型浮水印或應用到特定頁面範圍的浮水印,請參考Java自訂浮水印指南

如何壓縮PDF文件?

對於包含圖像的PDF文件,IronPDF可以通過將嵌入圖像重新採樣至較低解析度來減小文件大小。 在現有的compressImages

:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/compress-pdf.java
// Load an existing PDF or use one created by IronPDF
PdfDocument pdf = PdfDocument.fromFile(Paths.get("large-report.pdf"));
// Reduce image quality to 60% (value range: 1–100)
pdf.compressImages(60);
// Save the compressed document
pdf.saveAs("compressed-report.pdf");
JAVA

質量參數是一個從1到100的整數,其中100保留完整影像質量,而較低值在降低影像保真度的同時減少文件大小。 60到80的值在尺寸和視覺質量之間提供了實用的平衡,適用於大多數業務文件。

警告圖像壓縮是不可逆的。從壓縮的PDF中無法恢復原始影像資料。 如果以後可能需要原始質量,始終保留源文件。)]}

請參考PDF壓縮範例以獲取有關影像質量門檻的更多細節。

下一步

本教程涵蓋了三種HTML到PDF轉換方法(字串、URL和文件),以及頁面大小、邊界、頁眉、頁腳、浮水印和壓縮。 這些是Java伺服器應用程式中最常見的PDF格式操作。

要進一步了解IronPDF for Java:

開始免費試用以生成無水印的PDF,或查看授權選項以將IronPDF新增至生產專案。


教程快速存取

IronPDF for Java IntelliJ專案下載

下載本教程為Java源程式碼

本教程的完整HTML到PDF Java源程式碼可免費下載為壓縮的IntelliJ專案。

下載

在GitHub上探索這個教程

此專案的源程式碼可以在GitHub上找到,作為一個可導入到Eclipse或其他Java IDE中的IntelliJ IDEA專案。

IronPDF for Java格式化PDF範例
IronPDF Java教程源程式碼的GitHub儲存庫
IronPDF Java API參考文件

查看API參考

瀏覽IronPDF for Java的API參考,涵蓋com.ironsoftware.ironpdf包中所有類、方法、字段和枚舉的細節。

查看IronPDF Java API參考

常見問題

如何在Java中將HTML字串轉換為PDF?

使用IronPDF for Java程式庫中的PdfDocument.renderHtmlAsPdf(String html)。使用字串傳遞您的HTML標記,然後在返回的PdfDocument物件上調用saveAs將文件寫入磁碟。

如何將 IronPDF 新增到 Maven 專案?

com.ironsoftware:ironpdf工件新增到<dependencies>部份的pom.xml文件中。還可新增如org.slf4j:slf4j-simple的SLF4J實作來啟用日誌。運行mvn install以下載兩個工件。

如何設置使用IronPDF for Java所生成的PDF的頁面大小?

建立ChromePdfRenderOptions物件並調用setPaperSize(PaperSize.A4)(或其他常數)。將選項物件作為第二個參數傳遞給renderHtmlAsPdf。對於非標準尺寸,使用setCustomPaperSizeInMillimeters

如何在Java中為PDF新增頁眉和頁腳?

使用TextHeaderFooter進行純文字頁眉和頁腳,或使用HtmlHeaderFooter完全樣式化的HTML內容。配置物件以設置文字或HTML,將其設置在ChromePdfRenderOptions實例上使用setTextHeadersetHtmlHeader,並將選項傳遞給渲染方法。

如何使用IronPDF for Java在PDF上應用水印?

在現有PdfDocument上調用applyStamp(String htmlFragment)。傳遞定義水印外觀的HTML字串,使用CSS position:absolutetransform:rotate,和半透明rgba顏色覆蓋文字而不遮擋下面的內容。

IronPDF for Java能將網頁轉換為PDF嗎?

可以。調用PdfDocument.renderUrlAsPdf(String url)並提供網頁URL。IronPDF使用Chromium渲染引擎來獲取和執行頁面內容,包括JavaScript,在生成PDF輸出之前。

如何移除使用IronPDF生成的PDF上的IronPDF水印?

在任何PDF操作之前調用License.setLicenseKey("YOUR-LICENSE-KEY")。水印會應用在無有效授權金鑰生成的PDF上。您可以在ironpdf.com/java/licensing/獲得授權或免費試用金鑰。

如何使用IronPDF for Java壓縮PDF文件?

使用PdfDocument.fromFile載入PDF,接著調用compressImages(int quality)並以1到100的值提供參數。較低的值通過對嵌入圖片進行低解析度重採樣來減少文件大小。調用saveAs來寫入壓縮后的文件。

IronPDF for Java支援自訂頁面邊距嗎?

是的。使用ChromePdfRenderOptions並調用setMarginTopsetMarginBottomsetMarginLeftsetMarginRight參數,以毫米作為值單位。將選項傳遞給渲染方法以應用邊距。

IronPDF支援哪些Java版本?

IronPDF for Java支援Java 8及更高版本。該庫作為Maven工件com.ironsoftware:ironpdf提供,並可從ironpdf.com/java/獨立下載為fat-JAR。

Darrius Serrant
全端軟體工程師(WebOps)

Darrius Serrant擁有邁阿密大學的電腦科學學士學位,並在Iron Software擔任全端WebOps行銷工程師。從小就對程式設計有興趣,他認為計算既神秘又易於理解,成為創意和問題解決的完美媒介。

在Iron Software,Darrius喜歡創造新事物並簡化複雜的概念,使其更易於理解。作為我們的常駐開發人員之一,他還志願教學,將他的專業知識傳授給下一代。

對Darrius來說,他的工作是有意義的,因為它有價值且對社會有真正的影響。

準備好開始了嗎?
版本: 2026.6 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想要快速證明嗎?
運行範例 觀看您的HTML變成PDF。