用 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>上解析该依赖项。
[[t:(查看Maven Central页面的`com.ironsoftware:ironpdf`以确认最新版本号,然后再将其添加到您的pom.xml中。)]]
## 如何在Java中手动安装IronPDF JAR?
不使用Maven或其他依赖管理器的项目可以通过直接下载JAR并将其包含在classpath上来添加IronPDF。 导航到[IronPDF for Java下载页面](/java/)并下载胖-JAR文件。
胖-JAR捆绑了所有的依赖项,因此除了主要工件外不需要额外的classpath条目。 可选地下载<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也是有效的:`import com.ironsoftware.ironpdf.PdfDocument;`。 在探索期间通配符导入很方便。
## 如何在Java中设置IronPDF的许可证密钥?
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");
```
将`PdfDocument`方法调用之前。 [购买许可证密钥](/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`调用之前。 在转换开始后调用它对该会话没有影响。)]
)]]
## 如何将HTML字符串转换为Java中的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、网络字体、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/)。
## 如何将URL转换为Java中的PDF?
`PdfDocument.renderUrlAsPdf(String url)`获取给定URL的页面并在保存输出为PDF之前渲染完整的DOM(包括JavaScript执行)。
```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/)以获取其他选项,例如自定义请求头和身份验证。
## 如何将HTML文件转换为Java中的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/)。
## 如何在Java中向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中应用水印到PDF上?
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/)。
## 如何在Java中压缩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应用程序[以编程方式打印PDF](/java/how-to/print-pdf/)
- 浏览[IronPDF for Java API参考](/java/object-reference/api/)以获取完整的`PdfDocument`方法列表
[开始免费试用](#trial-license)以生成无水印的PDF,或[查看许可选项](#licensing)以将IronPDF添加到生产项目中。
<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>此项目的源代码作为IntelliJ IDEA项目可用,并且可以导入到Eclipse或其他Java IDE中。</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.
安装
HTML到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>
XML
ironpdf构件引用了最新的IronPDF for Java版本和变更日志 。 slf4j-simple依赖提供了一个基本的日志后端。 您可以根据需要将其替换为Logback 或Log4J ,或者完全省略以抑制日志输出。
添加完两个条目后,从项目根目录运行mvn install来下载构件。 Maven将在Maven Central 上解析该依赖项。
查看Maven Central页面的com.ironsoftware:ironpdf以确认最新版本号,然后再将其添加到您的pom.xml中。
如何在Java中手动安装IronPDF JAR?
不使用Maven或其他依赖管理器的项目可以通过直接下载JAR并将其包含在classpath上来添加IronPDF。 导航到IronPDF for Java下载页面 并下载胖-JAR文件。
胖-JAR捆绑了所有的依赖项,因此除了主要工件外不需要额外的classpath条目。 可选地下载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也是有效的:import com.ironsoftware.ironpdf.PdfDocument;。 在探索期间通配符导入很方便。
如何在Java中设置IronPDF的许可证密钥?
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方法调用之前。 购买许可证密钥 或开始免费试用 以生成无水印的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调用之前。 在转换开始后调用它对该会话没有影响。)]
如何将HTML字符串转换为Java中的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、网络字体、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的代码示例 。
如何将URL转换为Java中的PDF?
PdfDocument.renderUrlAsPdf(String url)获取给定URL的页面并在保存输出为PDF之前渲染完整的DOM(包括JavaScript执行)。
// 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转换示例 以获取其他选项,例如自定义请求头和身份验证。
如何将HTML文件转换为Java中的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边距是分开的,因此当打印时,填满页面边到边的内容可能仍会被剪切。)]
欲了解可用代码示例,请访问自定义边距示例 。
如何在Java中向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中应用水印到PDF上?
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指南 。
如何在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项目。
下载
查看 API 参考 探索IronPDF for Java的API参考,涵盖com.ironsoftware.ironpdf包中所有类、方法、字段和枚举的详细信息。
查看IronPDF Java API参考 常见问题解答 使用IronPDF for Java库的PdfDocument.renderHtmlAsPdf(String html)。将HTML标记作为字符串参数传递,然后在返回的PdfDocument对象上调用saveAs将文件写入磁盘。
将com.ironsoftware:ironpdf制品添加到<dependencies>部分的pom.xml文件中。还添加一个SLF4J实现,如org.slf4j:slf4j-simple以启用日志记录。运行mvn install以下载这两个制品。
创建一个ChromePdfRenderOptions对象并调用setPaperSize(PaperSize.A4)(或者其他常量)。将选项对象作为第二个参数传递给renderHtmlAsPdf。对于非标准尺寸,使用setCustomPaperSizeInMillimeters。
对于纯文本页眉和页脚使用TextHeaderFooter,对于完全样式化的HTML内容使用HtmlHeaderFooter。用文本或HTML配置对象,使用setTextHeader或setHtmlHeader将其设置在ChromePdfRenderOptions实例上,并将选项传递给渲染方法。
在现有PdfDocument上调用applyStamp(String htmlFragment)。传递定义水印外观的HTML字符串,使用CSSposition:absolute、transform:rotate和半透明的rgba颜色来覆盖文本而不遮挡下面的内容。
是的。调用 PdfDocument.renderUrlAsPdf(String url) 并传入页面 URL。IronPDF 使用 Chromium 渲染引擎来获取并执行页面,包括 JavaScript,然后生成 PDF 输出。
在执行任何 PDF 操作之前调用 License.setLicenseKey("YOUR-LICENSE-KEY")。没有有效的许可证密钥会在生成的 PDF 上应用水印。您可以在 ironpdf.com/java/licensing/ 获得许可证或免费试用密钥。
using 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 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。
...
阅读更多