Java 中的 HTML 轉 PDF
IronPDF for Java 採用與現代瀏覽器相同的渲染引擎,將 HTML 內容轉換為像素級精準的 PDF 文件。 Java 應用程式可從 HTML 字串、本機 HTML 檔案或即時網頁產生 PDF 檔案,無需任何額外的渲染軟體或 GUI 環境。
本教學涵蓋 IronPDF for Java 中所有三種 HTML 轉 PDF 的轉換方法,並包含安裝、授權及設定選項。 已使用 IronPDF for .NET 的開發人員會發現 Java API 相當熟悉; 對應的 .NET 教學指南請參閱《HTML 轉 PDF for .NET 教學指南》。
快速入門:從 HTML 產生 PDF 檔案
以下範例展示如何從 HTML 字串建立單頁 PDF 檔案,並將其儲存至磁碟。 透過 Maven 安裝該函式庫(步驟 1)後,所需的程式碼僅此而已:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/quickstart-html-string.java
import com.ironsoftware.ironpdf.*;
// Apply your license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
// Render an HTML string to a PDF file
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Java.</p>");
pdf.saveAs("output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/quickstart-html-string.java
import com.ironsoftware.ironpdf.*;
// Apply your license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
// Render an HTML string to a PDF file
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Java.</p>");
pdf.saveAs("output.pdf");
立即透過免費試用,在您的專案中開始使用 IronPDF。
目錄
- 如何在 Java 專案中安裝 IronPDF?
- 如何在 Java 中將 HTML 字串轉換為 PDF?
- 如何在 HTML 字串中載入本地資源?
- 如何在 Java 中將 URL 轉換為 PDF?
- 如何在 Java 中將 HTML 檔案轉換為 PDF?
- 如何自訂 PDF 輸出設定?
- 如何在 PDF 中新增頁首和頁尾?
- 如何設定自訂邊距和頁面大小?
- 如何在 PDF 中加入浮水印?
- 如何在 Java 中從 PDF 檔案中擷取文字?
- 如何在 Java 中從 PDF 檔案中擷取圖片?
- 如何壓縮 PDF 檔案?
- 如何透過程式碼列印 PDF?
- 後續步驟
如何在 Java 專案中安裝 IronPDF?
IronPDF for Java 可在 Maven Central 儲存庫中取得。 建議的安裝方式是使用 Maven,但對於未採用建置系統的專案,亦支援手動安裝 JAR 檔案。
作為 Maven 依賴項安裝
請將以下組件新增至專案 dependencies 檔案的 pom.xml 區段中:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-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/generate-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>
第一個建置項目會引入 IronPDF。 The second is an SLF4J logging implementation. IronPDF 採用 SLF4J 在渲染過程中輸出診斷訊息; you can substitute it with Logback or Log4j 2, or omit logging entirely.
請在專案根目錄執行 mvn install 以下載依賴項。 在確定版本號之前,請先確認 IronPDF 的最新版本,因為變更日誌中列出了所有當前及過往的發行版本。
手動安裝 JAR 檔案
未使用 Maven 的開發人員可直接從 Maven Central 下載 IronPDF 的 fat JAR 檔案,並將其加入專案的類別路徑中。 此"fat JAR"包已整合所有轉移性依賴項。
導入 IronPDF 套件
所有 PDF 渲染與處理類別皆位於 com.ironsoftware.ironpdf 套件中。 請在任何使用 IronPDF 的 Java 原始碼檔案中加入以下導入語句:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/import-package.java
import com.ironsoftware.ironpdf.*;
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/import-package.java
import com.ironsoftware.ironpdf.*;
設定授權金鑰
若未輸入授權金鑰,IronPDF 渲染的 PDF 檔案每頁都會顯示拼接式浮水印。 若要移除浮水印,請在呼叫任何渲染方法之前,將有效的授權金鑰傳遞給 License.setLicenseKey:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-license-key.java
import com.ironsoftware.ironpdf.*;
// Set the license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-license-key.java
import com.ironsoftware.ironpdf.*;
// Set the license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
請在應用程式啟動時,於任何 PDF 生成邏輯執行之前,調用此函式。 立即開始免費試用以取得試用金鑰,或查看正式部署的授權方案。
設定日誌檔案路徑
IronPDF 會將渲染診斷資訊寫入位於應用程式工作目錄中的 IronPdfEngine.log 日誌檔案。 請呼叫 Settings.setLogPath 來變更檔案名稱或位置:
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-log-path.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Configure logging before calling any rendering methods
Settings.setLogPath(Paths.get("logs/ironpdf.log"));
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-log-path.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Configure logging before calling any rendering methods
Settings.setLogPath(Paths.get("logs/ironpdf.log"));
Settings.setLogPath。 (渲染開始後發出的呼叫將不會生效。)}]如何在 Java 中將 HTML 字串轉換為 PDF?
PdfDocument.renderHtmlAsPdf 會將 HTML 字串轉換為 PdfDocument 物件,該物件隨後可儲存至磁碟或傳遞給其他處理方法。 此方法接受任何符合 W3C 標準的 HTML,包括使用 <head> 和 <body> 元素的完整頁面標記。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a simple HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting PDF to a file
pdf.saveAs("htmlstring_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a simple HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting PDF to a file
pdf.saveAs("htmlstring_to_pdf.pdf");
此方法會傳回一個 PdfDocument 實例。 呼叫 saveAs 將 PDF 寫入磁碟,或使用 getBinaryData 擷取原始 PDF 位元組以供串流或儲存。
renderHtmlAsPdf 會像符合標準的瀏覽器一樣,以相同的方式處理所有 HTML、CSS 和 JavaScript 內容。 生成的 PDF 文件完全呈現了該頁面在 Chrome 瀏覽器中的顯示樣貌。
有關此方法的更多詳細資訊,請參閱 IronPDF for Java 範例頁面中的"HTML 字串轉 PDF"程式碼範例。
如何在 HTML 字串中載入本地資源?
HTML 通常會透過相對路徑來引用外部資源(樣式表、圖片、腳本)。 renderHtmlAsPdf 接受一個可選的第二個參數,用以設定解析這些參照的基底路徑。 基礎路徑可以指向本機目錄或網址。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-local-assets.java
import com.ironsoftware.ironpdf.*;
// HTML with references to local stylesheets and images
String html = "<html>"
+ "<head>"
+ "<title>Invoice</title>"
+ "<link rel='stylesheet' type='text/css' href='style.css'>"
+ "</head>"
+ "<body>"
+ "<div class='content'>"
+ "<h1>Invoice #1001</h1>"
+ "<img src='logo.png' alt='Company Logo'/>"
+ "</div>"
+ "</body>"
+ "</html>";
// The second argument resolves relative asset paths
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-local-assets.java
import com.ironsoftware.ironpdf.*;
// HTML with references to local stylesheets and images
String html = "<html>"
+ "<head>"
+ "<title>Invoice</title>"
+ "<link rel='stylesheet' type='text/css' href='style.css'>"
+ "</head>"
+ "<body>"
+ "<div class='content'>"
+ "<h1>Invoice #1001</h1>"
+ "<img src='logo.png' alt='Company Logo'/>"
+ "</div>"
+ "</body>"
+ "</html>";
// The second argument resolves relative asset paths
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice.pdf");
basePath 參數同時支援絕對檔案系統路徑與 URL 字串。 這使得 renderHtmlAsPdf 適合用於從儲存於磁碟或由網頁伺服器提供的範本生成 PDF 檔案。
C:\invoices\) 的路徑應轉換為正斜線,或使用 Paths.get() 以確保跨平台相容性。如何在 Java 中將 URL 轉換為 PDF?
PdfDocument.renderUrlAsPdf 會從指定的 URL 擷取即時網頁,並將其渲染為 PDF 檔案。 此方法會在渲染前載入完整頁面,包含所有外部 CSS、JavaScript 及圖片。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/url-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Render a live web page as a PDF document
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/url-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Render a live web page as a PDF document
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
renderUrlAsPdf 會在 JavaScript 執行完成後才擷取渲染後的頁面,這意味著動態生成的內容(例如圖表或透過 AJAX 載入的資料)將會出現在輸出 PDF/A 中。
如需對應的 .NET 實作方式或其他 URL 轉 PDF 選項,請參閱"將 URL 轉換為 PDF"的程式碼範例。
如何在 Java 中將 HTML 檔案轉換為 PDF?
PdfDocument.renderHtmlFileAsPdf 讀取本地的 HTML 檔案並將其渲染為 PDF。 HTML 檔案中引用的所有相對路徑(樣式表、圖片、腳本)均以 HTML 檔案所在目錄為基準進行解析。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a local HTML file to PDF
// IronPDF resolves relative asset paths from the HTML file's directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;
// Convert a local HTML file to PDF
// IronPDF resolves relative asset paths from the HTML file's directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
此方法特別適用於範本化文件生成:例如儲存為 HTML 檔案(並附帶相關 CSS 和圖像資源)的發票範本、報告或證書。 IronPDF 能以與瀏覽器相同的精確度渲染檔案,並完整保留所有 CSS 版面配置規則。
renderHtmlFileAsPdf 的相對路徑會從 JVM 工作目錄進行解析,這在伺服器環境中可能會產生意想不到的結果。)]如何自訂 PDF 輸出設定?
PdfRenderOptions 類別用於控制頁面版面配置與渲染行為。 建立一個 PdfRenderOptions 實例,設定所需的屬性,並將其傳遞給任一渲染方法。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Configure rendering options before generating the PDF
PdfRenderOptions options = new PdfRenderOptions();
// Set the zoom level (100 = normal size)
options.setZoom(100);
// Wait for JavaScript to finish before rendering
options.setJavaScriptTimeout(5000);
// Enable printing of background colors and images
options.setPrintBackground(true);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
"<h1>Customized PDF</h1>",
options
);
pdf.saveAs("customized.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Configure rendering options before generating the PDF
PdfRenderOptions options = new PdfRenderOptions();
// Set the zoom level (100 = normal size)
options.setZoom(100);
// Wait for JavaScript to finish before rendering
options.setJavaScriptTimeout(5000);
// Enable printing of background colors and images
options.setPrintBackground(true);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
"<h1>Customized PDF</h1>",
options
);
pdf.saveAs("customized.pdf");
PdfRenderOptions 類別提供了額外的屬性,用於控制 DPI、視口寬度、紙張方向及超時值。 請參閱 PDF 生成設定的程式碼範例,以查看所有可用選項的完整清單。
如何在 PDF 中加入頁首和頁尾?
IronPDF 同時支援基於文字與基於 HTML 的頁首和頁尾。 文字標題使用預先定義的合併欄位來填入頁碼和文件標題等常見值; HTML 標題支援任意 HTML 標記,可實現完全自訂的版面配置。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1><p>Content goes here.</p>");
// Create a text-based header using merge fields
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Annual Report");
header.setRightText("{page} of {total-pages}");
header.setFont(com.ironsoftware.ironpdf.font.FontTypes.Helvetica);
header.setFontSize(10.0);
// Create a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setRightText("Generated by IronPDF");
pdf.addTextHeaders(header);
pdf.addTextFooters(footer);
pdf.saveAs("report_with_headers.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1><p>Content goes here.</p>");
// Create a text-based header using merge fields
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Annual Report");
header.setRightText("{page} of {total-pages}");
header.setFont(com.ironsoftware.ironpdf.font.FontTypes.Helvetica);
header.setFontSize(10.0);
// Create a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setRightText("Generated by IronPDF");
pdf.addTextHeaders(header);
pdf.addTextFooters(footer);
pdf.saveAs("report_with_headers.pdf");
{page} 和 {total-pages} 合併欄位將在渲染時替換為當前頁碼和總頁數。 若需處理較複雜的版面配置(例如包含公司標誌的頁尾),請使用 HtmlHeaderFooter 取代 TextHeaderFooter。
有關基於 HTML 的頁首與頁尾的完整詳細資訊,請參閱"新增頁首與頁尾"的程式碼範例。
如何設定自訂邊距和頁面大小?
在渲染 PDF/A 之前,頁面上與邊距的設定會於 PdfRenderOptions 物件中進行配置。 IronPDF 支援標準紙張尺寸(A4、Letter、Legal)以及完全自訂的尺寸。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/margins-page-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;
PdfRenderOptions options = new PdfRenderOptions();
// Set margins in millimeters: top, right, bottom, left
options.setMarginTop(25);
options.setMarginRight(20);
options.setMarginBottom(25);
options.setMarginLeft(20);
// Use A4 paper size
options.setPaperSize(PaperSize.A4);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Formatted Document</h1>", options);
pdf.saveAs("formatted_document.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/margins-page-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;
PdfRenderOptions options = new PdfRenderOptions();
// Set margins in millimeters: top, right, bottom, left
options.setMarginTop(25);
options.setMarginRight(20);
options.setMarginBottom(25);
options.setMarginLeft(20);
// Use A4 paper size
options.setPaperSize(PaperSize.A4);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Formatted Document</h1>", options);
pdf.saveAs("formatted_document.pdf");
有關支援的紙張尺寸與單位完整清單,請參閱自訂紙張尺寸程式碼範例及自訂邊距程式碼範例。
如何在 PDF 中加入浮水印?
PdfDocument.applyWatermark 會將文字或圖片浮水印套用至文件中的每一頁。 水印預設會顯示在頁面內容下方的獨立圖層上;若將 isStampBehind 標記設為 false,則會顯示在頁面內容上方。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/add-watermark.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Document</h1>");
// Apply an HTML watermark; supports full CSS styling
String watermarkHtml = "<h1 style='color: rgba(200, 0, 0, 0.2); transform: rotate(-45deg); font-size: 60px;'>DRAFT</h1>";
// Second argument: opacity (0-100), third: rotation (degrees), fourth: stamp behind content
pdf.applyWatermark(watermarkHtml, 50, 45, true);
pdf.saveAs("draft_watermarked.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/add-watermark.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Document</h1>");
// Apply an HTML watermark; supports full CSS styling
String watermarkHtml = "<h1 style='color: rgba(200, 0, 0, 0.2); transform: rotate(-45deg); font-size: 60px;'>DRAFT</h1>";
// Second argument: opacity (0-100), third: rotation (degrees), fourth: stamp behind content
pdf.applyWatermark(watermarkHtml, 50, 45, true);
pdf.saveAs("draft_watermarked.pdf");
HTML 方法可精確控制浮水印的樣式,包括字型、大小、顏色及透明度。 有關進階浮水印設定(例如重複的拼貼圖案或基於圖像的印章),請參閱浮水印操作指南。
如何在 Java 中從 PDF 檔案中擷取文字?
PdfDocument.extractAllText 會讀取 PDF 中嵌入的文字內容,並將其作為單一 String 返回。 此方法會從文件中的所有頁面擷取可選取的文字。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-text.java
import com.ironsoftware.ironpdf.*;
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("report.pdf"));
// Extract all embedded text from the document
String text = pdf.extractAllText();
System.out.println(text);
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-text.java
import com.ironsoftware.ironpdf.*;
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("report.pdf"));
// Extract all embedded text from the document
String text = pdf.extractAllText();
System.out.println(text);
文字擷取功能適用於文字以可選取字形儲存的 PDF 檔案。若 PDF 檔案為基於影像的掃描檔,建議將 IronPDF 與 OCR 函式庫搭配使用,以從渲染後的頁面影像中擷取文字。
請參閱 PDF 文字擷取程式碼範例,了解其他選項,包括逐頁文字擷取功能。
如何在 Java 中從 PDF 檔案中擷取圖片?
PdfDocument.extractAllImages 會傳回一個 BufferedImage 物件清單,其中每個物件對應 PDF 中嵌入的一張圖片。 處理後的影像可直接儲存至磁碟,或傳遞至後續的影像處理邏輯中。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-images.java
import com.ironsoftware.ironpdf.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;
// Load an existing PDF
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Extract all embedded images
List<BufferedImage> images = pdf.extractAllImages();
for (int i = 0; i < images.size(); i++) {
ImageIO.write(images.get(i), "PNG", new File("extracted_image_" + i + ".png"));
}
System.out.println("Extracted " + images.size() + " image(s).");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-images.java
import com.ironsoftware.ironpdf.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;
// Load an existing PDF
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Extract all embedded images
List<BufferedImage> images = pdf.extractAllImages();
for (int i = 0; i < images.size(); i++) {
ImageIO.write(images.get(i), "PNG", new File("extracted_image_" + i + ".png"));
}
System.out.println("Extracted " + images.size() + " image(s).");
如需更多擷取選項(包括從特定頁面擷取圖片),請參閱"從 PDF 擷取圖片"的程式碼範例。
如何壓縮 PDF 檔案?
PdfDocument.compressImages 透過以較低品質重新編碼嵌入的圖片,來縮小 PDF 檔案大小。 此方法接受 1(最低品質,最小檔案)至 100(最高品質)之間的品質數值。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/compress-pdf.java
import com.ironsoftware.ironpdf.*;
// Load a large PDF with embedded images
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("large_report.pdf"));
// Compress images to 60% quality to reduce file size
pdf.compressImages(60);
pdf.saveAs("large_report_compressed.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/compress-pdf.java
import com.ironsoftware.ironpdf.*;
// Load a large PDF with embedded images
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("large_report.pdf"));
// Compress images to 60% quality to reduce file size
pdf.compressImages(60);
pdf.saveAs("large_report_compressed.pdf");
對於包含照片或高解析度圖形的 PDF 檔案,影像壓縮是縮小檔案大小的最有效方法。 如需其他檔案大小壓縮策略(例如移除嵌入字型),請參閱 PDF 壓縮程式碼範例。
如何透過程式碼列印 PDF?
PdfDocument.print 透過標準的 Java 列印 API,將 PDF 傳送至系統的預設印表機。 此方法接受一個布林值參數,用以控制是否顯示列印對話方塊。
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/print-pdf.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Print silently to the default printer (no dialog shown)
pdf.print(false);
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/print-pdf.java
import com.ironsoftware.ironpdf.*;
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));
// Print silently to the default printer (no dialog shown)
pdf.print(false);
將 true 傳遞給 print 方法,以顯示系統列印對話方塊,讓使用者能在傳送列印工作前選擇印表機並設定列印選項。
後續步驟
本教學涵蓋了 IronPDF for Java 中核心的 HTML 轉 PDF 方法,以及安裝、設定與常見的文件處理操作。
延伸閱讀:
- 請瀏覽完整的 HTML 轉 PDF Java 程式碼範例,以了解本文未涵蓋的其他渲染情境。
- 請閱讀 IronPDF for Java 文件,以了解部署、執行緒安全性及伺服器設定。
- 請參閱完整的 IronPDF for Java API 參考文件,以了解詳細的方法簽名與參數說明。
立即開始免費試用,生成無浮水印的 PDF 檔案,或查看授權方案,為您的專案找到最適合的方案。
教學快速連結
在 GitHub 上探索此教學指南
本專案的原始碼已作為 IntelliJ IDEA 專案上傳至 GitHub。該專案可匯入至其他常見的 Java 整合開發環境(IDE),包括 Eclipse 和 NetBeans。
GitHub 上的 Java HTML 轉 PDF/A常見問題
IronPDF for Java 的用途為何?
IronPDF for Java 可在 Java 應用程式內將 HTML 內容轉換為 PDF 文件。它支援轉換 HTML 字串、本機 HTML 檔案及即時網頁 URL,並提供用於添加頁首與頁尾、添加浮水印、文字擷取、圖片擷取及檔案壓縮的工具。
如何在 Java 專案中安裝 IronPDF?
請在您的 pom.xml 中新增兩項 Maven 依賴項:com.ironsoftware:IronPDF 和 org.slf4j:slf4j-simple,然後執行 mvn install。或者,您也可以從 Maven Central 下載 fat JAR 檔案,並將其加入專案的類別路徑中。
如何在 Java 中將 HTML 字串轉換為 PDF?
請傳入您的 HTML 標記,並呼叫 PdfDocument.renderHtmlAsPdf(htmlString)。此方法會傳回一個 PdfDocument 物件。請呼叫 pdf.saveAs("output.pdf") 將其寫入磁碟。
如何在 Java 中將 URL 轉換為 PDF?
呼叫 PdfDocument.renderUrlAsPdf("https://example.com")。IronPDF 會載入該頁面,等待 JavaScript 執行完畢,然後將完全載入的頁面渲染為 PDF 檔案。
如何在 Java 中將本地的 HTML 檔案轉換為 PDF?
呼叫 PdfDocument.renderHtmlFileAsPdf("C:/path/to/file.html")。請使用絕對檔案路徑。IronPDF 會自動解析 HTML 檔案目錄中的相對 CSS 和圖片引用。
IronPDF for Java 會為生成的 PDF 檔案添加浮水印嗎?
若未提供授權金鑰,IronPDF 會於所有生成的 PDF 檔案中添加拼貼式浮水印。請在任何渲染呼叫之前,透過 License.setLicenseKey("YOUR-KEY") 設定有效的授權金鑰,以移除浮水印。
IronPDF 需要哪個版本的 Java?
IronPDF for Java 需使用 Java 8 或更高版本。它相容於 Spring Boot、Java EE、Micronaut 及其他基於 JVM 的框架。
如何使用 IronPDF for Java 在 PDF 中為文件添加頁碼?
建立 TextHeaderFooter 實例,並呼叫 setRightText("{page} of {total-pages}")。將該物件傳遞給 PDF.addTextFooters(footer)。合併欄位會在渲染時被實際的頁碼所取代。
IronPDF for Java 能否從 PDF 中擷取文字?
是的。請使用 PdfDocument.fromFile(Paths.get("file.pdf")) 載入 PDF 檔案,接著呼叫 pdf.extractAllText() 來擷取所有可選取的文字內容,並將其轉為字串。
如何在 Java 中縮小 PDF 檔案的大小?
呼叫 pdf.compressImages(quality),其中 quality 為 1 至 100 之間的整數。對於大多數 PDF 檔案,設定 60 這個數值能在檔案大小與影像保真度之間取得良好的平衡。





