Java 中的 HTML 轉 PDF

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

IronPDF for Java 讓開發人員無需學習獨立的版面配置 API,即可直接將 HTML 內容轉為 PDF 輸出。 此函式庫以現代瀏覽器相同的方式渲染 HTML、CSS 和 JavaScript,因此產出的 PDF 文件與螢幕上所見內容完全一致。 本教學涵蓋安裝步驟、三種核心的 HTML 轉 PDF 方法,以及包含頁首、頁尾、頁面尺寸和自訂邊距在內的格式設定選項。

本教學使用 IronPDF for Java。 關於 .NET 版本的對照指南,請參閱 .NET 的 HTML 轉 PDF 轉換教學。 IronPDF 亦提供 Python 及 IronPDF for Node.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");
//: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

目錄

如何在 Java 的 Maven 專案中加入 IronPDF?

要在 Maven 專案中加入 IronPDF,需在專案的 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 依賴項提供了一個基本的日誌後端。 You can substitute it with Logback or Log4J as needed, or omit it entirely to suppress log output.

新增兩項條目後,請從專案根目錄執行 mvn install 以下載相關建置成果。 Maven resolves the dependency against Maven Central.

提示在將其加入 pom.xml 之前,請先查閱 Maven Central 上的 com.ironsoftware:ironpdf 頁面,以確認最新版本號。

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

若專案未使用 Maven 或其他依賴管理工具,可直接下載 JAR 檔案並將其加入類別路徑,以整合 IronPDF。 請前往 IronPDF for Java 下載頁面,並下載 fat-JAR 檔案。

此 fat-JAR 已整合所有依賴項,因此除主要套件外,無需額外設定 classpath 項目。 Optionally download an SLF4J implementation JAR to enable logging.

請透過您的 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.*;
//: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

請在應用程式啟動時,於呼叫任何 PdfDocument 方法之前,插入 setLicenseKey 呼叫。 購買授權金鑰開始免費試用,即可產生無浮水印的 PDF 檔案。

IronPDF licensing page showing how to obtain a license key to remove watermarks from generated PDFs

有效的授權金鑰可移除生成的 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"));
//: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 呼叫之前,必須先有 setLogPath 呼叫。 在轉換開始後呼叫此方法,對該工作階段不會產生任何影響。)]

如何在 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");
//: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
PDF output from IronPDF renderHtmlAsPdf showing an H1 heading rendered faithfully from an HTML string

IronPDF 可將 HTML 標記直接渲染為像素級精準的 PDF。此處顯示的輸出結果是由上方的程式碼範例所產生。

渲染引擎基於 Chromium,因此任何在 Chrome 中運作的 HTML、CSS 或 JavaScript 皆能在 PDF 中正確呈現。 這包括 Flexbox 佈局、CSS Grid、網頁字型、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");
//: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 output showing a full-page document with stylesheet applied, CSS styles preserved from the HTML source

當提供基礎路徑時,IronPDF 會解析本機 CSS 和圖片引用,以產生樣式完整的 PDF 檔案。

提示為使本地資源解析功能正常運作,所有被引用的檔案必須可從基目錄路徑存取。 (使用正斜線的路徑在 Windows 和 Linux 系統上皆可正常運作。

如需深入了解此方法,請參閱"HTML 字串轉 PDF"程式碼範例

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

PdfDocument.renderUrlAsPdf(String url) 會從指定網址擷取頁面,並在將輸出儲存為 PDF 之前,渲染完整的 DOM(包含執行 JavaScript)。

//: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");
//: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
PDF generated by IronPDF from the Wikipedia PDF article page, showing multi-column layout and navigation elements preserved

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");
//: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 類別進行控制。 建立一個 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");
//: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

PaperSize 包含諸如 A3 以及 A5 等標準選項。 PaperOrientation 接受 Portrait(預設)或 Landscape

對於非標準尺寸,請使用 setCustomPaperSizeInMillimeters(double width, double height)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");
//: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");
//: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 的邊距設定是分開的,因此即使內容填滿整頁,列印時仍可能發生裁切現象。)}]

如需實際運作的程式碼範例,請參閱自訂邊距範例

如何在 Java 中為 PDF 添加頁首和頁尾?

IronPDF 支援兩種頁首與頁尾格式:文字型 (TextHeaderFooter) 及 HTML 型 (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");
//: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

{url} 以及 {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");
//: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 頁首片段會在各自的頁面上下文中渲染。 外部圖片路徑必須為絕對網址,或可從執行 IronPDF 的伺服器存取的路徑。

請參閱頁首與頁尾的程式碼範例,以了解其他合併欄位選項及多頁面的運作方式。

如何在 Java 中為 PDF 加上浮水印?

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");
//: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 版自訂水印操作指南

如何在 Java 中壓縮 PDF 檔案?

對於包含圖片的 PDF 檔案,IronPDF 可透過將嵌入的圖片重新取樣為較低解析度,來縮小檔案大小。 在現有的 PdfDocument 上使用 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");
//: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 原始碼,可免費下載為 ZIP 壓縮過的 IntelliJ 專案。

下載

在 GitHub 上探索此教學指南

本專案的原始碼已上傳至 GitHub,格式為 IntelliJ IDEA 專案,亦可匯入 Eclipse 或其他 Java 整合開發環境 (IDE)。

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

查看 API 參考

探索 IronPDF for Java 的 API 參考文件,內容涵蓋 com.ironsoftware.ironpdf 套件中所有類別、方法、欄位及枚舉的詳細資訊。

查看 IronPDF for Java API 參考手冊

常見問題

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

請使用 PdfDocument.renderHtmlAsPdf(String html) 來自 IronPDF for Java 函式庫。將您的 HTML 標記作為字串參數傳入,然後呼叫 saveAs 回傳的 PdfDocument 物件上呼叫,將檔案寫入磁碟。

如何將 IronPDF 加入 Maven 專案?

請將 com.ironsoftware:ironpdf 此成果至您的 <dependencies> 部分的 pom.xml 檔案的區段中。同時加入 SLF4J 實作(例如 org.slf4j:slf4j-simple 以啟用記錄功能。執行 mvn install 以下載這兩項組件。

如何設定使用 IronPDF for Java 生成的 PDF 文件頁面大小?

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

如何在 Java 中為 PDF 檔案新增頁首和頁尾?

請使用 TextHeaderFooter 用於純文字的頁首和頁尾,或 HtmlHeaderFooter 來表示完整樣式的 HTML 內容。可透過文字或 HTML 設定該物件,並將其套用至 ChromePdfRenderOptions 實例上,使用 setTextHeadersetHtmlHeader,並將選項傳遞給 render 方法。

如何使用 IronPDF for Java 在 PDF 檔案上加上浮水印?

呼叫 applyStamp(String htmlFragment) 呼叫現有的 PdfDocument。傳入一個定義浮水印外觀的 HTML 字串,使用 CSS position:absolute, transform:rotate,並使用半透明 rgba 顏色,以疊加文字而不遮蔽底層內容。

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

是的。請 PdfDocument.renderUrlAsPdf(String url) 並提供頁面網址。IronPDF 採用 Chromium 渲染引擎來擷取並執行頁面(包含 JavaScript),然後才產生 PDF 輸出。

如何從生成的 PDF 檔案中移除 IronPDF 水印?

License.setLicenseKey("YOUR-LICENSE-KEY") 。若未使用有效的授權金鑰生成 PDF,文件上將被添加浮水印。您可至 ironpdf.com/java/licensing/ 取得授權或免費試用授權。

如何使用 IronPDF for Java 壓縮 PDF 檔案?

使用PDF PdfDocument.fromFile,然後呼叫 compressImages(int quality) 並傳入 1 至 100 之間的數值。較低的數值會透過以較低解析度重新取樣嵌入的圖片來縮小檔案大小。呼叫 saveAs 來寫入壓縮檔案。

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

是的。請使用 ChromePdfRenderOptions 並呼叫 setMarginTop, setMarginBottom, setMarginLeft,並 setMarginRight 並以毫米為單位傳入數值。將選項傳遞給 render 方法以套用邊距。

IronPDF 支援哪些 Java 版本?

IronPDF for Java 支援 Java 8 及後續版本。此函式庫可透過 Maven 套件取得,網址為 com.ironsoftware:ironpdf ,亦可從 ironpdf.com/java/ 下載獨立的 fat-JAR 檔案。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
版本: 2026.5 just released
Still Scrolling Icon

還在捲動嗎?

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