在Java中將HTML轉換為PDF Copy for LLMsCopy for LLMs Copy page as Markdown for LLMs
# 在Java中將HTML轉換為PDF
IronPDF for Java讓開發者能夠直接從HTML內容生成PDF輸出,無需學習單獨的布局API。 此程式庫以現代瀏覽器相同的方式渲染HTML、CSS和JavaScript,因此PDF輸出與螢幕上顯示的一致。 本教程涵蓋了安裝、三種核心HTML轉PDF轉換方法,以及包括頁眉、頁腳、頁面大小和自訂邊界在內的格式化選項。
本教程使用IronPDF for Java。 一個涵蓋.NET版本的平行指南可以在[HTML到PDF轉換教程 for .NET](/tutorials/html-to-pdf/)找到。 IronPDF也提供[Python](/python/)和[Node.js](/nodejs/)版。
*as-heading:2(快速入門:將HTML轉換為PDF文件)*
從HTML字串轉換為PDF的最短路徑是三行Java程式碼:
```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");
```
!!!--LIBRARY_START_TRIAL_BLOCK--!!!
*as-heading:2(目錄)*
- **安裝**
- [如何將IronPDF新增到Maven專案?](#how-do-i-add-ironpdf-to-a-maven-project-in-java)
- [如何手動安裝IronPDF JAR?](#how-do-i-install-the-ironpdf-jar-manually-in-java)
- [如何將IronPDF導入我的Java源文件?](#how-do-i-import-ironpdf-into-my-java-source-files)
- [如何設置授權金鑰?](#how-do-i-set-a-license-key-in-ironpdf-for-java)
- **HTML到PDF轉換**
- [如何將HTML字串轉換為PDF?](#how-do-i-convert-an-html-string-to-a-pdf-in-java)
- [如何將URL轉換為PDF?](#how-do-i-convert-a-url-to-a-pdf-in-java)
- [如何將HTML文件轉換為PDF?](#how-do-i-convert-an-html-file-to-a-pdf-in-java)
- **PDF格式選項**
- [如何設置PDF頁面大小和方向?](#how-do-i-set-pdf-page-size-and-orientation-in-java)
- [如何設置PDF的自訂邊界?](#how-do-i-set-custom-margins-on-a-pdf-in-java)
- [如何為PDF新增頁眉和頁腳?](#how-do-i-add-headers-and-footers-to-a-pdf-in-java)
- [如何在PDF中應用浮水印?](#how-do-i-apply-a-watermark-to-a-pdf-in-java)
- [如何壓縮PDF文件?](#how-do-i-compress-a-pdf-file-in-java)
- [下一步](#next-steps)
!!!--LIBRARY_NUGET_INSTALL_BLOCK--!!!
## 如何將IronPDF新增到Java中的Maven專案?
將IronPDF新增到Maven專案需要在專案的`pom.xml`依賴塊中進行兩次條目。 第一個條目導入IronPDF程式庫; 第二個則新增SLF4J日誌提供者,以便IronPDF在執行期間能夠寫入引擎消息。
```xml
//: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版本和變更日誌](/java/product-updates/changelog/)。 `slf4j-simple`依賴提供了一個基本的日誌後端。 您可以根據需要將其替換為<a href="https://logback.qos.ch/" target="_blank" rel="nofollow noopener noreferrer">Logback</a>或<a href="https://logging.apache.org/log4j/2.x/" target="_blank" rel="nofollow noopener noreferrer">Log4J</a>,或者完全省略以抑制日誌輸出。
在新增這兩個條目後,從專案根目錄運行`mvn install`下載工件。 Maven將依賴解析到<a href="https://search.maven.org" target="_blank" rel="nofollow noopener noreferrer">Maven Central</a>。
`com.ironsoftware:ironpdf`新增到您的pom.xml之前,檢查Maven Central頁面以確認最新版本號。
## 如何在Java中手動安裝IronPDF JAR?
不使用Maven或其他依賴管理器的專案可以通過直接下載JAR並將其包括在類路徑上來新增IronPDF。 導航至[IronPDF for Java下載頁面](/java/)並下載fat-JAR文件。
fat-JAR捆綁了所有依賴,因此除了主要工件之外不需要其他類路徑條目。 可以選擇性地下載<a href="https://mvnrepository.com/artifact/org.slf4j/slf4j-simple" target="_blank" rel="nofollow noopener noreferrer">SLF4J實現JAR</a>以啟用日誌記錄。
使用IDE的庫管理面板將兩個JAR文件新增到專案的類路徑中,或者在從終端編譯和運行時指定`-classpath`條目。
## 如何將IronPDF導入我的Java源文件?
`com.ironsoftware.ironpdf`包包含所有轉換和處理組件。 在調用IronPDF方法的每個Java文件頂部放置以下導入語句。
```java
// Import all IronPDF components
import com.ironsoftware.ironpdf.*;
```
一個具名特定類的目標導入也是有效的:`import com.ironsoftware.ironpdf.PdfDocument;`。 在探索過程中通常使用通配符導入。
## 如何設置IronPDF for Java中授權金鑰?
IronPDF for Java在未提供授權金鑰的情況下可免費使用,但會在所有生成或修改的PDF文件上應用平鋪浮水印。 要移除浮水印,請在調用任何轉換或操作方法之前提供有效的授權金鑰。
```java
//: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`調用。 [購買授權金鑰](/java/licensing/)或[開始免費試用](#trial-license)以生成沒有浮水印的PDF。
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a rel="nofollow" href="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-23.webp" target="_blank"><img src="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-23.webp" alt="IronPDF 授權頁面,顯示如何取得授權金鑰以移除產生的 PDF 上的浮水印" class="img-responsive add-shadow" /></a>
<p class="content__image-caption">有效的授權金鑰將從生成的PDF中移除平鋪浮水印。在IronPDF授權頁面獲得一個或請求免費試用。</p>
</div>
</div>
### 設定日誌文件位置(可選)
預設情況下,IronPDF將引擎消息寫入應用程式根目錄中名為`IronPdfEngine.log`的文件。 要更改日誌文件路徑,請在執行任何PDF操作之前調用`Settings.setLogPath`。
```java
import java.nio.file.Paths;
// Redirect log output before using IronPDF
Settings.setLogPath(Paths.get("logs/ironpdf-engine.log"));
```
[[i:(`PdfDocument`調用之前。 在開始轉換後調用它不會影響該會話。)]}
)]]
## 如何在Java中將HTML字串轉換為PDF?
`PdfDocument.renderHtmlAsPdf(String html)`將任何有效的HTML標記轉換為PDF文件。 該方法接受原始HTML字串並返回一個可保存、合併或進一步修改的`PdfDocument`物件。
```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");
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a rel="nofollow" href="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-5.webp" target="_blank"><img src="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-5.webp" alt="來自 IronPDF renderHtmlAsPdf 的 PDF 輸出,顯示從 HTML 字串忠實渲染的 H1 標題" class="img-responsive add-shadow" /></a>
<p class="content__image-caption">IronPDF將HTML標記直接渲染為像素精確的PDF。此處顯示的輸出由上面的程式碼範例生成。</p>
</div>
</div>
渲染引擎基於Chromium,因此在Chrome中工作的任何HTML、CSS或JavaScript都將正確渲染在PDF中。 包括Flexbox布局、CSS Grid、Web字體、SVG和JavaScript驅動的圖表。
方法的重載版本接受第二個參數作為基本路徑:`renderHtmlAsPdf(String html, String basePath)`。 此基本路徑用於解決本地樣式表、圖像和腳本的相對引用。
```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在渲染過程中從該位置檢索引用的資源。
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a rel="nofollow" href="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-24.webp" target="_blank"><img src="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-24.webp" alt="IronPDF renderHtmlAsPdf 輸出結果,顯示套用樣式表的完整頁面文件,並保留來自 HTML 原始碼的 CSS 樣式" class="img-responsive add-shadow" /></a>
<p class="content__image-caption">提供基本路徑時,IronPDF會解析本地CSS和圖像引用以生成完全樣式化的PDF。</p>
</div>
</div>
[[t:(為使本地資源解析起作用,所有引用的文件必須可以從基本路徑存取。 使用正斜線的路徑可在Windows和Linux上正常運作。)]}
)]]
若要專注於此方法,請參見[HTML字串轉PDF程式碼範例](/java/examples/using-html-to-create-a-pdf/)。
## 如何在Java中將URL轉換為PDF?
`PdfDocument.renderUrlAsPdf(String url)`獲取給定URL的頁面,渲染完整的DOM(包括JavaScript執行)後將輸出保存為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");
```
<div class="content-img-align-center">
<div class="center-image-wrapper">
<a rel="nofollow" href="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-7.webp" target="_blank"><img src="/static-assets/ironpdf-java/tutorials/html-to-pdf/html-to-pdf-7.webp" alt="由 IronPDF 從維基百科 PDF 條目頁面產生的 PDF,顯示保留的多欄版面與導覽元素" class="img-responsive add-shadow" /></a>
<p class="content__image-caption">IronPDF捕獲網頁的完整渲染狀態,包括JavaScript生成的動態內容。</p>
</div>
</div>
Chromium渲染引擎獲取外部樣式表、字體和JavaScript文件,因此生成的PDF準確反映頁面的可視狀態。 此方法非常適合從網頁儀表板生成報告、存檔公共網頁內容或轉換依賴客戶端渲染的資料可視化。
[[n:(URL到PDF轉換需要IronPDF運行的伺服器具備外部HTTP/HTTPS存取。 在部署到生產環境之前,請確保網路策略允許此操作。)]}
)]]
查看[URL到PDF轉換範例](/java/examples/converting-a-url-to-a-pdf/)以獲得其他選項,如自定義請求標頭和身份驗證。
## 如何在Java中將HTML文件轉換為PDF?
`PdfDocument.renderHtmlFileAsPdf(String filePath)`從本地文件系統讀取HTML文件並將其轉換為PDF。 該方法自動將HTML文件中的所有相對資源引用解析為文件目錄。
```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。
[[t:(從伺服器應用程式調用`renderHtmlFileAsPdf`時,使用絕對文件路徑。 相對路徑會解析為JVM的工作目錄,可能與HTML文件的位置不同。)]}
)]]
此方法特別適用於在磁盤上維護HTML模板的PDF生成工作流程:發票生成器、報告模板和表單輸出系統是常見的用例。
## 如何在Java中設置PDF頁面大小和方向?
頁面大小和方向是通過`ChromePdfRenderOptions`類控制的。 建立一個`renderHtmlAsPdf`調用。
```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)`:
```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紙張尺寸範例](/java/examples/custom-pdf-paper-size/)以獲得完整版`PaperSize`常數和尺寸選項。
## 如何在Java中設置PDF的自訂邊界?
邊界大小也是通過`ChromePdfRenderOptions`設置的。 程式庫提供了獨立的設置程式,用於設置頂部、底部、左側和右側邊界,所有設置以毫米為單位。
```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");
```
將所有邊界設置為零將完全消除白色空間,這對於全版面設計如標籤、證書或圖形布局非常有用。
[[i:(IronPDF邊界值以毫米為單位。 在該邊啟用邊界的情況下的值為`0`。 請注意,列印驅動程式邊界與IronPDF邊界分開,因此內容可能仍會在列印時被剪裁。)]}
)]]
請存取[自訂邊界範例](/java/examples/ironpdf-set-custom-margins/)查看範例程式碼。
## 如何為PDF新增頁眉和頁腳?
IronPDF支持兩種型別的頁眉和頁腳:基於文字的(`HtmlHeaderFooter`)。 文字標頭配置快速; HTML標頭支持完全的樣式和圖像。
### 新增文字標頭和頁腳
```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`:
```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");
```
[[t:(HTML標頭片段在它們自己的頁面上下文中渲染。 外部圖像路徑必須是絕對URL或可以從運行IronPDF的伺服器存取的路徑。)]}
)]]
請參考[標頭和頁腳程式碼範例](/java/examples/headers-and-footers/)以獲得更多合併字段選項和多頁行為。
## 如何在Java中應用浮水印?
IronPDF通過將HTML內容蓋印在現有PDF頁面上來應用浮水印。 這種方法提供了對定位、透明度和樣式的完全控制。
```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自訂浮水印指南](/java/how-to/custom-watermark/)。
## 如何壓縮PDF文件?
對於包含圖像的PDF文件,IronPDF可以通過將嵌入圖像重新採樣至較低解析度來減小文件大小。 在現有的`compressImages`。
```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的值在尺寸和視覺質量之間提供了實用的平衡,適用於大多數業務文件。
[[w:(圖像壓縮是不可逆的。從壓縮的PDF中無法恢復原始影像資料。 如果以後可能需要原始質量,始終保留源文件。)]}
)]]
請參考[PDF壓縮範例](/java/examples/pdf-compression/)以獲取有關影像質量門檻的更多細節。
## 下一步
本教程涵蓋了三種HTML到PDF轉換方法(字串、URL和文件),以及頁面大小、邊界、頁眉、頁腳、浮水印和壓縮。 這些是Java伺服器應用程式中最常見的PDF格式操作。
要進一步了解IronPDF for Java:
- 探索完整的[IronPDF for Java程式碼範例](/java/examples/using-html-to-create-a-pdf/)以獲取複製-貼上起始點
- 閱讀[PDF生成設置範例](/java/examples/pdf-generation-settings/)以了解DPI、縮放和渲染質量選項
- 查看如何[從現有的PDF提取文字和圖像](/java/examples/extract-image-from-pdf/)
- 學習如何從Java應用程式[程式印表](/java/how-to/print-pdf/)
- 窺探[IronPDF for Java API參考](/java/object-reference/api/)以檢視完整的`PdfDocument`方法清單
[開始免費試用](#trial-license)以生成無水印的PDF,或[查看授權選項以將IronPDF新增至生產專案。](#licensing)
<hr class="separator" />
#### 教程快速存取
<div class="tutorial-section">
<div class="row">
<div class="col-sm-4">
<div class="tutorial-image">
<img alt="IronPDF for Java IntelliJ專案下載" class="img-responsive add-shadow" src="/img/platforms/cps-intellij.svg" style="width: 160px;" />
</div>
</div>
<div class="col-sm-8">
<h3>下載本教程為Java源程式碼</h3>
<p>本教程的完整HTML到PDF Java源程式碼可免費下載為壓縮的IntelliJ專案。</p>
<a class="btn btn-white3" href="https://github.com/iron-software/IronPdfJava.Examples/archive/refs/heads/master.zip"><i class="fa fa-cloud-download"></i>下載</a>
</div>
</div>
</div>
<div class="tutorial-section">
<div class="row">
<div class="col-sm-8">
<h3>在GitHub上探索這個教程</h3>
<p>此專案的源程式碼可以在GitHub上找到,作為一個可導入到Eclipse或其他Java IDE中的IntelliJ IDEA專案。</p>
<a class="doc-link" href="https://github.com/iron-software/IronPdfJava.Examples/tree/main/tutorials/format-pdfs" target="_blank">IronPDF for Java格式化PDF範例 <i class="fa fa-chevron-right"></i></a>
</div>
<div class="col-sm-4">
<div class="tutorial-image">
<img alt="IronPDF Java教程源程式碼的GitHub儲存庫" class="img-responsive add-shadow" src="/img/svgs/github-icon.svg" />
</div>
</div>
</div>
</div>
<div class="tutorial-section">
<div class="row">
<div class="col-sm-4">
<div class="tutorial-image">
<img style="max-width: 110px; width: 100px; height: 140px;" alt="IronPDF Java API參考文件" class="img-responsive add-shadow" src="/img/svgs/documentation.svg" width="100" height="140" />
</div>
</div>
<div class="col-sm-8">
<h3>查看API參考</h3>
<p>瀏覽IronPDF for Java的API參考,涵蓋<code>com.ironsoftware.ironpdf</code>包中所有類、方法、字段和枚舉的細節。</p>
<a class="doc-link" href="/java/object-reference/api/" target="_blank">查看IronPDF Java API參考 <i class="fa fa-chevron-right"></i></a>
</div>
</div>
</div>
Ask ChatGPT about this page
Ask Gemini about this page
Ask Perplexity about this page
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的最短路徑是三行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" );
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
Start using IronPDF in your project today with a free trial.
如何將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依賴提供了一個基本的日誌後端。 您可以根據需要將其替換為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文件頂部放置以下導入語句。
// Import all IronPDF components
import com . ironsoftware . ironpdf . * ;
// 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。
有效的授權金鑰將從生成的PDF中移除平鋪浮水印。在IronPDF授權頁面獲得一個或請求免費試用。
設定日誌文件位置(可選)
預設情況下,IronPDF將引擎消息寫入應用程式根目錄中名為IronPdfEngine.log的文件。 要更改日誌文件路徑,請在執行任何PDF操作之前調用Settings.setLogPath。
import java . nio . file . Paths ;
// Redirect log output before using IronPDF
Settings .setLogPath( Paths .get( "logs/ironpdf-engine.log" ));
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物件。
// 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" );
// 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將HTML標記直接渲染為像素精確的PDF。此處顯示的輸出由上面的程式碼範例生成。
渲染引擎基於Chromium,因此在Chrome中工作的任何HTML、CSS或JavaScript都將正確渲染在PDF中。 包括Flexbox布局、CSS Grid、Web字體、SVG和JavaScript驅動的圖表。
方法的重載版本接受第二個參數作為基本路徑:renderHtmlAsPdf(String html, String basePath)。 此基本路徑用於解決本地樣式表、圖像和腳本的相對引用。
// 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" );
// 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會解析本地CSS和圖像引用以生成完全樣式化的PDF。
為使本地資源解析起作用,所有引用的文件必須可以從基本路徑存取。 使用正斜線的路徑可在Windows和Linux上正常運作。)]}
若要專注於此方法,請參見HTML字串轉PDF程式碼範例 。
如何在Java中將URL轉換為PDF?
PdfDocument.renderUrlAsPdf(String url)獲取給定URL的頁面,渲染完整的DOM(包括JavaScript執行)後將輸出保存為PDF。
// 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" );
// 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捕獲網頁的完整渲染狀態,包括JavaScript生成的動態內容。
Chromium渲染引擎獲取外部樣式表、字體和JavaScript文件,因此生成的PDF準確反映頁面的可視狀態。 此方法非常適合從網頁儀表板生成報告、存檔公共網頁內容或轉換依賴客戶端渲染的資料可視化。
URL到PDF轉換需要IronPDF運行的伺服器具備外部HTTP/HTTPS存取。 在部署到生產環境之前,請確保網路策略允許此操作。)]}
查看URL到PDF轉換範例 以獲得其他選項,如自定義請求標頭和身份驗證。
如何在Java中將HTML文件轉換為PDF?
PdfDocument.renderHtmlFileAsPdf(String filePath)從本地文件系統讀取HTML文件並將其轉換為PDF。 該方法自動將HTML文件中的所有相對資源引用解析為文件目錄。
// 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" );
// 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調用。
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" );
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
A5。 Landscape。
對於非標準尺寸,使用setCustomPaperSizeInInches(double width, double height):
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" );
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設置的。 程式庫提供了獨立的設置程式,用於設置頂部、底部、左側和右側邊界,所有設置以毫米為單位。
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" );
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邊界分開,因此內容可能仍會在列印時被剪裁。)]}
請存取自訂邊界範例 查看範例程式碼。
如何為PDF新增頁眉和頁腳?
IronPDF支持兩種型別的頁眉和頁腳:基於文字的(HtmlHeaderFooter)。 文字標頭配置快速; HTML標頭支持完全的樣式和圖像。
新增文字標頭和頁腳
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" );
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:
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" );
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頁面上來應用浮水印。 這種方法提供了對定位、透明度和樣式的完全控制。
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" );
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。
// 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" );
// 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新增至生產專案。
教程快速存取
下載本教程為Java源程式碼 本教程的完整HTML到PDF Java源程式碼可免費下載為壓縮的IntelliJ專案。
下載
常見問題 使用IronPDF for Java程式庫中的PdfDocument.renderHtmlAsPdf(String html)。使用字串傳遞您的HTML標記,然後在返回的PdfDocument物件上調用saveAs將文件寫入磁碟。
將com.ironsoftware:ironpdf工件新增到<dependencies>部份的pom.xml文件中。還可新增如org.slf4j:slf4j-simple的SLF4J實作來啟用日誌。運行mvn install以下載兩個工件。
建立ChromePdfRenderOptions物件並調用setPaperSize(PaperSize.A4)(或其他常數)。將選項物件作為第二個參數傳遞給renderHtmlAsPdf。對於非標準尺寸,使用setCustomPaperSizeInMillimeters。
使用TextHeaderFooter進行純文字頁眉和頁腳,或使用HtmlHeaderFooter完全樣式化的HTML內容。配置物件以設置文字或HTML,將其設置在ChromePdfRenderOptions實例上使用setTextHeader或setHtmlHeader,並將選項傳遞給渲染方法。
在現有PdfDocument上調用applyStamp(String htmlFragment)。傳遞定義水印外觀的HTML字串,使用CSS position:absolute,transform:rotate,和半透明rgba顏色覆蓋文字而不遮擋下面的內容。
可以。調用PdfDocument.renderUrlAsPdf(String url)並提供網頁URL。IronPDF使用Chromium渲染引擎來獲取和執行頁面內容,包括JavaScript,在生成PDF輸出之前。
在任何PDF操作之前調用License.setLicenseKey("YOUR-LICENSE-KEY")。水印會應用在無有效授權金鑰生成的PDF上。您可以在ironpdf.com/java/licensing/獲得授權或免費試用金鑰。
使用PdfDocument.fromFile載入PDF,接著調用compressImages(int quality)並以1到100的值提供參數。較低的值通過對嵌入圖片進行低解析度重採樣來減少文件大小。調用saveAs來寫入壓縮后的文件。
是的。使用ChromePdfRenderOptions並調用setMarginTop、setMarginBottom、setMarginLeft和setMarginRight參數,以毫米作為值單位。將選項傳遞給渲染方法以應用邊距。
IronPDF for Java支援Java 8及更高版本。該庫作為Maven工件com.ironsoftware:ironpdf提供,並可從ironpdf.com/java/獨立下載為fat-JAR。
技術作家
Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。
...
閱讀更多