IronPDF for Java 使用現代瀏覽器中的渲染引擎將 HTML 內容轉換為像素完美的 PDF 文件。 Java 應用程式可以從 HTML 字串、本地 HTML 文件或線上網頁生成 PDF,無需任何額外的渲染軟體或圖形介面環境。
本教程涵蓋了 IronPDF for Java 中所有的 HTML 到 PDF 轉換方法,以及安裝、授權和配置選項。 已經使用 IronPDF for .NET 的開發者會對 Java API 感到熟悉; 等價的 .NET 教程可在HTML to PDF for .NET Tutorial中找到。
請注意: IronPDF for Java 需要 Java 8 或更高版本,並且與所有主要的基於 JVM 的框架相容,包括 Spring Boot、Java EE 和 Micronaut。
快速入門:從 HTML 生成 PDF
以下範例從 HTML 字串建立一頁 PDF 並將其保存到磁碟。 安裝程式庫(步驟1)後,這是全部所需的程式碼:
import com.ironsoftware.ironpdf.*;// Apply your license key before any rendering callLicense.setLicenseKey("YOUR-LICENSE-KEY");// Render an HTML string to a PDF filePdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Java.</p>");pdf.saveAs("output.pdf");
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");
Java
Start using IronPDF in your project today with a free trial.
import com.ironsoftware.ironpdf.*;import java.nio.file.Paths;// Configure logging before calling any rendering methodsSettings.setLogPath(Paths.get("logs/ironpdf.log"));
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
// Configure logging before calling any rendering methods
Settings.setLogPath(Paths.get("logs/ironpdf.log"));
Java
重要: 在调用任何 PDF 轉換或操作方法之前調用 Settings.setLogPath。 在已開始渲染之後進行的調用將不生效。
import com.ironsoftware.ironpdf.*;// Convert a simple HTML string to PDFPdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");// Save the resulting PDF to a filepdf.saveAs("htmlstring_to_pdf.pdf");
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");
Java
PdfDocument.renderHtmlAsPdf 方法將 HTML 標記渲染為 PDF,保留所有符合 W3C 標準的樣式和結構。
該方法返回一個 PdfDocument 實例。 調用 saveAs 將 PDF 寫入磁碟,或使用 getBinaryData 來獲取流或儲存的原始 PDF 字節。
import com.ironsoftware.ironpdf.*;// Render a live web page as a PDF documentPdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");pdf.saveAs("url_to_pdf.pdf");
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");
PdfDocument.renderHtmlFileAsPdf 讀取本地 HTML 文件並將其渲染為 PDF。 HTML 文件中引用的所有相對路徑(樣式表、圖像、腳本)將相對於 HTML 文件的目錄進行解析。
import com.ironsoftware.ironpdf.*;// Convert a local HTML file to PDF// IronPDF resolves relative asset paths from the HTML file's directoryPdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");pdf.saveAs("htmlfile_to_pdf.pdf");
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");
Java
此方法適用於模版文件生成:與其關聯的 CSS 和圖像資產一起儲存為 HTML 文件的發票模板、報告或證書。 IronPDF 與瀏覽器一樣精確地渲染文件,保留所有的 CSS 佈局規則。
請注意: HTML 文件路徑必須是絕對的。 傳遞給 renderHtmlFileAsPdf 的相對路徑將從 JVM 工作目錄解析,這可能會在伺服器環境中產生意想不到的結果。
import com.ironsoftware.ironpdf.*;import com.ironsoftware.ironpdf.render.*;// Configure rendering options before generating the PDFPdfRenderOptions options = newPdfRenderOptions();// Set the zoom level (100 = normal size)options.setZoom(100);// Wait for JavaScript to finish before renderingoptions.setJavascriptTimeout(5000);// Enable printing of background colors and imagesoptions.setPrintBackground(true);PdfDocument pdf = PdfDocument.renderHtmlAsPdf( "<h1>Customized PDF</h1>", options);pdf.saveAs("customized.pdf");
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");
Java
PdfRenderOptions 類提供其他屬性來控制 DPI、視窗寬度、紙張方向和超時值。 請參閱 PDF 生成設置程式碼範例 以獲取所有可用選項的完整列表。
如何為 PDF 新增頁眉和頁腳?
IronPDF 支持基於文字和基於 HTML 的頁眉和頁腳。 文字頁眉使用預定義的合併欄位表示常見的值,如頁碼和文件標題; HTML 頁眉接受任意 HTML 標記,用於完全自定義的佈局。
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 fieldsTextHeaderFooter header = newTextHeaderFooter();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 footerTextHeaderFooter footer = newTextHeaderFooter();footer.setLeftText("Confidential");footer.setRightText("Generated by IronPDF");pdf.addTextHeaders(header);pdf.addTextFooters(footer);pdf.saveAs("report_with_headers.pdf");
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");
頁面大小和邊距在 PDF 渲染之前配置在 PdfRenderOptions 物件上。 IronPDF 支持標準紙張大小(A4、Letter、Legal)和完全自定義尺寸。
import com.ironsoftware.ironpdf.*;import com.ironsoftware.ironpdf.render.*;import com.ironsoftware.ironpdf.page.*;PdfRenderOptions options = newPdfRenderOptions();// Set margins in millimeters: top, right, bottom, leftoptions.setMarginTop(25);options.setMarginRight(20);options.setMarginBottom(25);options.setMarginLeft(20);// Use A4 paper sizeoptions.setPaperSize(PaperSize.A4);PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Formatted Document</h1>", options);pdf.saveAs("formatted_document.pdf");
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");
import com.ironsoftware.ironpdf.*;PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Document</h1>");// Apply an HTML watermark; supports full CSS stylingString 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 contentpdf.applyWatermark(watermarkHtml, 50, 45, true);pdf.saveAs("draft_watermarked.pdf");
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");
Java
HTML 方法提供對水印樣式的精準控制,包括字體、大小、顏色和透明度。 有關高級水印配置,如重複磁貼模式或基於圖像的戳記,請參見水印使用指南。
如何從 Java 中的 PDF 提取文字?
PdfDocument.extractAllText 讀取 PDF 中嵌入的文字內容並將其作為單個 String 返回。 此方法從文件中所有頁面提取可選擇的文字。
import com.ironsoftware.ironpdf.*;// Load an existing PDF from diskPdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("report.pdf"));// Extract all embedded text from the documentString text = pdf.extractAllText();System.out.println(text);
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);
PdfDocument.compressImages 通過以較低質量重新編碼嵌入圖像來減小 PDF 文件大小。 該方法接受一個從 1(最低質量,最小文件)到 100(最高質量)的質量值。
import com.ironsoftware.ironpdf.*;// Load a large PDF with embedded imagesPdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("large_report.pdf"));// Compress images to 60% quality to reduce file sizepdf.compressImages(60);pdf.saveAs("large_report_compressed.pdf");
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");
Java
圖像壓縮是減小包含照片或高解析度圖形的 PDF 大小的最有效方法。 如需更多減小文件大小策略(如剝離嵌入字體),請參見PDF 壓縮程式碼範例。
提示: 質量值介於 40 到 70 之間通常為大多數 PDF 用例提供文件大小和視覺保真度之間的良好平衡。
如何以編程方式列印 PDF?
PdfDocument.print 使用標準 Java 列印 API 將 PDF 發送到系統的預設列印機。 該方法接受一個布林值,用於控制是否顯示列印對話框。
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);
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);