IRONSOFTWAREHOME

用 Java 将 HTML 转换为 PDF.

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

IronPDF for Java为开发者提供了从HTML内容到PDF输出的直接路径,无需学习单独的布局API。 库以现代浏览器的方式呈现HTML、CSS和JavaScript,因此PDF输出与您在屏幕上看到的内容相匹配。 本教程介绍了安装、三个核心的HTML到PDF转换方法,以及包括页眉、页脚、页面尺寸和自定义边距的格式选项。

教程使用IronPDF for Java。 提供了.NET版本的平行指南,可在HTML到PDF转换教程for .NET中找到。 IronPDF也可用于PythonNode.js

快速入门:将HTML转换为PDF文件

从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");
Java

Start using IronPDF in your project today with a free trial.

第一步:
arrow pointer
目录

如何将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>
XML

ironpdf构件引用了最新的IronPDF for Java版本和变更日志slf4j-simple依赖提供了一个基本的日志后端。 您可以根据需要将其替换为LogbackLog4J,或者完全省略以抑制日志输出。

添加完两个条目后,从项目根目录运行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.*;
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");
Java

PdfDocument方法调用之前。 购买许可证密钥开始免费试用以生成无水印的PDF。

IronPDF 许可页面,展示如何获取许可证密钥以移除生成 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"));
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");
Java
IronPDF renderHtmlAsPdf 的 PDF 输出,显示从 HTML 字符串忠实渲染的 H1 标题

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");
Java

基路径可以指向本地文件系统上的目录或远程URL。 在渲染过程中,IronPDF从该位置获取引用的资产。

IronPDF renderHtmlAsPdf 输出,显示应用了样式表的整页文档,保留了 HTML 源中的 CSS 样式

提供基路径时,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");
Java
IronPDF 从维基百科 PDF 词条页面生成的 PDF,显示保留的多栏布局和导航元素

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");
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");
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");
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");
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");
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");
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");
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");
Java

质量参数是1到100之间的整数,其中100保留完整图像质量,较低的值通过降低图像保真度来减小文件大小。 60到80的值为大多数业务文档提供了大小和视觉质量之间的实用平衡。

警告: 图像压缩是不可逆的。原始图像数据无法从压缩的PDF中恢复。 如果以后可能需要原始质量,请始终保留源文件。)]

有关图像质量阈值的更多详情,请参阅PDF压缩示例

下一步

本教程涵盖了三种HTML到PDF的转换方法(字符串、URL和文件)以及页面尺寸、边距、页眉、页脚、水印和压缩。 这些是用于Java服务器应用程序的最常见PDF格式操作。

要进一步了解IronPDF for Java:

开始免费试用以生成无水印的PDF,或查看许可选项以将IronPDF添加到生产项目中。


教程快速访问

IronPDF for Java IntelliJ项目下载

下载本教程的 Java 源代码

本教程的完整HTML到PDF Java源代码可以免费下载为压缩的IntelliJ项目。

下载

在 GitHub 上探索此教程

此项目的源代码作为IntelliJ IDEA项目可用,并且可以导入到Eclipse或其他Java IDE中。

IronPDF for Java格式PDF示例
IronPDF Java教程源代码的GitHub代码库
IronPDF Java API参考文档

查看 API 参考

探索IronPDF for Java的API参考,涵盖com.ironsoftware.ironpdf包中所有类、方法、字段和枚举的详细信息。

查看IronPDF Java API参考

常见问题解答

如何在Java中将HTML字符串转换为PDF?

使用IronPDF for Java库的PdfDocument.renderHtmlAsPdf(String html)。将HTML标记作为字符串参数传递,然后在返回的PdfDocument对象上调用saveAs将文件写入磁盘。

如何将IronPDF添加到Maven项目中?

com.ironsoftware:ironpdf制品添加到<dependencies>部分的pom.xml文件中。还添加一个SLF4J实现,如org.slf4j:slf4j-simple以启用日志记录。运行mvn install以下载这两个制品。

如何设置IronPDF for Java生成的PDF页面大小?

创建一个ChromePdfRenderOptions对象并调用setPaperSize(PaperSize.A4)(或者其他常量)。将选项对象作为第二个参数传递给renderHtmlAsPdf。对于非标准尺寸,使用setCustomPaperSizeInMillimeters

如何在Java中为PDF添加页眉和页脚?

对于纯文本页眉和页脚使用TextHeaderFooter,对于完全样式化的HTML内容使用HtmlHeaderFooter。用文本或HTML配置对象,使用setTextHeadersetHtmlHeader将其设置在ChromePdfRenderOptions实例上,并将选项传递给渲染方法。

如何使用IronPDF for Java将水印应用到PDF上?

在现有PdfDocument上调用applyStamp(String htmlFragment)。传递定义水印外观的HTML字符串,使用CSSposition:absolutetransform:rotate和半透明的rgba颜色来覆盖文本而不遮挡下面的内容。

IronPDF for Java能将网页转换为PDF吗?

是的。调用 PdfDocument.renderUrlAsPdf(String url) 并传入页面 URL。IronPDF 使用 Chromium 渲染引擎来获取并执行页面,包括 JavaScript,然后生成 PDF 输出。

如何去除 IronPDF 生成的 PDF 上的水印?

在执行任何 PDF 操作之前调用 License.setLicenseKey("YOUR-LICENSE-KEY")。没有有效的许可证密钥会在生成的 PDF 上应用水印。您可以在 ironpdf.com/java/licensing/ 获得许可证或免费试用密钥。

如何用 IronPDF for Java 压缩 PDF 文件?

using PdfDocument.fromFile 加载 PDF,然后调用 compressImages(int quality),值的范围是 1 到 100。较低的值通过以较低分辨率重新取样嵌入图像来减少文件大小。调用 saveAs 来保存压缩后的文件。

IronPDF for Java 是否支持自定义页面边距?

是的。使用 ChromePdfRenderOptions 并调用 setMarginTopsetMarginBottomsetMarginLeftsetMarginRight,单位为毫米。在渲染方法中传入这些选项以应用边距。

IronPDF 支持哪些 Java 版本?

IronPDF for Java 支持 Java 8 及更高版本。该库可作为 Maven 工件下载,名称为 com.ironsoftware:ironpdf,或从 ironpdf.com/java/ 下载独立的 fat-JAR。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

版本:2026.6刚刚发布

立即获取您的免费30 天试用密钥
无需信用卡或创建账户
Java Maven PDF 库
using Maven 安装

版本: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
or
Java PDF JAR
下载 JAR

版本: 2026.6

立即下载

手动安装到您的项目中

Key in blue circle

立即获取免费的 30 天试用版密钥

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户