用 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,免费试用。
目录
- 安装
- 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>
ironpdf构件引用了最新的IronPDF for Java版本和变更日志。 slf4j-simple依赖提供了一个基本的日志后端。 您可以根据需要将其替换为Logback或Log4J,或者完全省略以抑制日志输出。
添加完两个条目后,从项目根目录运行mvn install来下载构件。 Maven将在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文件的顶部放置以下导入语句。
:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/import-statement.java
// Import all IronPDF components
import com.ironsoftware.ironpdf.*;
针对特定类命名的目标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");
将PdfDocument方法调用之前。 购买许可证密钥或开始免费试用以生成无水印的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调用之前。 在转换开始后调用它对该会话没有影响。)]
如何将HTML字符串转换为Java中的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、网络字体、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的代码示例。
如何将URL转换为Java中的PDF?
PdfDocument.renderUrlAsPdf(String url)获取给定URL的页面并在保存输出为PDF之前渲染完整的DOM(包括JavaScript执行)。
: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转换示例以获取其他选项,例如自定义请求头和身份验证。
如何将HTML文件转换为Java中的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边距是分开的,因此当打印时,填满页面边到边的内容可能仍会被剪切。)]
欲了解可用代码示例,请访问自定义边距示例。
如何在Java中向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中应用水印到PDF上?
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指南。
如何在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应用程序以编程方式打印PDF
- 浏览IronPDF for Java API参考以获取完整的
PdfDocument方法列表
开始免费试用以生成无水印的PDF,或查看许可选项以将IronPDF添加到生产项目中。
教程快速访问
查看 API 参考
探索IronPDF for Java的API参考,涵盖com.ironsoftware.ironpdf包中所有类、方法、字段和枚举的详细信息。
常见问题解答
如何在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配置对象,使用setTextHeader或setHtmlHeader将其设置在ChromePdfRenderOptions实例上,并将选项传递给渲染方法。
如何使用IronPDF for Java将水印应用到PDF上?
在现有PdfDocument上调用applyStamp(String htmlFragment)。传递定义水印外观的HTML字符串,使用CSSposition:absolute、transform: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 并调用 setMarginTop、setMarginBottom、setMarginLeft 和 setMarginRight,单位为毫米。在渲染方法中传入这些选项以应用边距。
IronPDF 支持哪些 Java 版本?
IronPDF for Java 支持 Java 8 及更高版本。该库可作为 Maven 工件下载,名称为 com.ironsoftware:ironpdf,或从 ironpdf.com/java/ 下载独立的 fat-JAR。






