在Java中將HTML轉換為PDF
IronPDF for Java讓開發者能夠直接從HTML內容生成PDF輸出,無需學習單獨的布局API。 此程式庫以現代瀏覽器相同的方式渲染HTML、CSS和JavaScript,因此PDF輸出與螢幕上顯示的一致。 本教程涵蓋了安裝、三種核心HTML轉PDF轉換方法,以及包括頁眉、頁腳、頁面大小和自訂邊界在內的格式化選項。
本教程使用IronPDF for Java。 一個涵蓋.NET版本的平行指南可以在HTML到PDF轉換教程 for .NET找到。 IronPDF也提供Python和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");
今天就使用IronPDF開始專案,免費試用。
目錄
- 安裝
- 如何將IronPDF新增到Maven專案?
- 如何手動安裝IronPDF JAR?
- 如何將IronPDF導入我的Java源文件?
- 如何設置授權金鑰?
- HTML到PDF轉換
- 如何將HTML字串轉換為PDF?
- 如何將URL轉換為PDF?
- 如何將HTML文件轉換為PDF?
- PDF格式選項
- 如何設置PDF頁面大小和方向?
- 如何設置PDF的自訂邊界?
- 如何為PDF新增頁眉和頁腳?
- 如何在PDF中應用浮水印?
- 如何壓縮PDF文件?
- 下一步
如何將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>
ironpdf工件參考了最新的IronPDF for Java版本和變更日誌。 slf4j-simple依賴提供了一個基本的日誌後端。 您可以根據需要將其替換為Logback或Log4J,或者完全省略以抑制日誌輸出。
在新增這兩個條目後,從專案根目錄運行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.*;
一個具名特定類的目標導入也是有效的: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");
在應用程式啟動時,在調用任何setLicenseKey調用。 購買授權金鑰或開始免費試用以生成沒有浮水印的PDF。
設定日誌文件位置(可選)
預設情況下,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"));
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");
渲染引擎基於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");
基本路徑可以指向本地文件系統上的目錄或遠程URL。 IronPDF在渲染過程中從該位置檢索引用的資源。
若要專注於此方法,請參見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");
Chromium渲染引擎獲取外部樣式表、字體和JavaScript文件,因此生成的PDF準確反映頁面的可視狀態。 此方法非常適合從網頁儀表板生成報告、存檔公共網頁內容或轉換依賴客戶端渲染的資料可視化。
查看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");
該方法能正確處理多文件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");
A5。 Landscape。
對於非標準尺寸,使用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");
查看自訂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");
將所有邊界設置為零將完全消除白色空間,這對於全版面設計如標籤、證書或圖形布局非常有用。
0。 請注意,列印驅動程式邊界與IronPDF邊界分開,因此內容可能仍會在列印時被剪裁。)]}
請存取自訂邊界範例查看範例程式碼。
如何為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");
{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中應用浮水印?
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");
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");
質量參數是一個從1到100的整數,其中100保留完整影像質量,而較低值在降低影像保真度的同時減少文件大小。 60到80的值在尺寸和視覺質量之間提供了實用的平衡,適用於大多數業務文件。
請參考PDF壓縮範例以獲取有關影像質量門檻的更多細節。
下一步
本教程涵蓋了三種HTML到PDF轉換方法(字串、URL和文件),以及頁面大小、邊界、頁眉、頁腳、浮水印和壓縮。 這些是Java伺服器應用程式中最常見的PDF格式操作。
要進一步了解IronPDF for Java:
- 探索完整的IronPDF for Java程式碼範例以獲取複製-貼上起始點
- 閱讀PDF生成設置範例以了解DPI、縮放和渲染質量選項
- 查看如何從現有的PDF提取文字和圖像
- 學習如何從Java應用程式程式印表
- 窺探IronPDF for Java API參考以檢視完整的
PdfDocument方法清單
開始免費試用以生成無水印的PDF,或查看授權選項以將IronPDF新增至生產專案。
教程快速存取
在GitHub上探索這個教程
此專案的源程式碼可以在GitHub上找到,作為一個可導入到Eclipse或其他Java IDE中的IntelliJ IDEA專案。
IronPDF for Java格式化PDF範例常見問題
如何在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實例上使用setTextHeader或setHtmlHeader,並將選項傳遞給渲染方法。
如何使用IronPDF for Java在PDF上應用水印?
在現有PdfDocument上調用applyStamp(String htmlFragment)。傳遞定義水印外觀的HTML字串,使用CSS position:absolute,transform: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並調用setMarginTop、setMarginBottom、setMarginLeft和setMarginRight參數,以毫米作為值單位。將選項傳遞給渲染方法以應用邊距。
IronPDF支援哪些Java版本?
IronPDF for Java支援Java 8及更高版本。該庫作為Maven工件com.ironsoftware:ironpdf提供,並可從ironpdf.com/java/獨立下載為fat-JAR。






