用 Java 将 HTML 转换为 PDF.

This article was translated from English: Does it need improvement?
Translated
View the article in English

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代码:

//: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");
//: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");
JAVA

今天在您的项目中使用 IronPDF,免费试用。

第一步:
green arrow pointer

目录

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

要在 Maven 项目中添加 IronPDF,需在项目的 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 依赖项提供了一个基本的日志记录后端。 You can substitute it with Logback or Log4J as needed, or omit it entirely to suppress log output.

添加完这两个条目后,请在项目根目录下运行 mvn install 以下载构建产物。 Maven resolves the dependency against Maven Central.

提示在将 com.ironsoftware:ironpdf 添加到 pom.xml 之前,请先查看 Maven Central 页面以确认最新版本号。

如何在Java中手动安装IronPDF JAR?

不使用Maven或其他依赖管理器的项目可以通过直接下载JAR并将其包含在classpath上来添加IronPDF。 导航到IronPDF for Java下载页面并下载胖-JAR文件。

胖-JAR捆绑了所有的依赖项,因此除了主要工件外不需要额外的classpath条目。 Optionally download an SLF4J implementation JAR to enable logging.

请通过 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.*;
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/import-statement.java
// Import all IronPDF components
import com.ironsoftware.ironpdf.*;
JAVA

针对特定类进行命名的导入方式也是有效的: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 方法之前,插入 setLicenseKey 调用。 购买许可证密钥开始免费试用以生成无水印的PDF。

IronPDF licensing page showing how to obtain a license key to remove watermarks from generated PDFs

有效的许可证密钥将移除生成的PDF上的平铺水印。可在IronPDF许可页面获取或请求免费试用。

设置日志文件位置(可选)

默认情况下,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"));
//: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"));
JAVA

请注意所有 PdfDocument 调用之前必须先调用 setLogPath。 在转换开始后调用它对该会话没有影响。)]

如何将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");
//: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");
JAVA
PDF output from IronPDF renderHtmlAsPdf showing an H1 heading rendered faithfully from an HTML string

IronPDF直接将HTML标记渲染成像素精确的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");
//: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");
JAVA

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

IronPDF renderHtmlAsPdf output showing a full-page document with stylesheet applied, CSS styles preserved from the HTML source

提供基路径时,IronPDF解决本地CSS和图像引用,以生成完全样式化的PDF。

提示要使本地资产解析工作,所有引用的文件必须可以从基路径访问。 使用正斜杠的路径可在Windows和Linux上工作。)]

有关这种方法的集中视图,请参见HTML字符串到PDF的代码示例

如何将URL转换为Java中的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");
//: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");
JAVA
PDF generated by IronPDF from the Wikipedia PDF article page, showing multi-column layout and navigation elements preserved

IronPDF捕获网页的完整渲染状态,包括JavaScript生成的动态内容。

Chromium渲染引擎获取外部样式表、字体和JavaScript文件,因此生成的PDF准确地反映了页面的视觉状态。 此方法非常适合从网页仪表盘生成报告、存档公共网页内容或转换依赖于客户端渲染的数据可视化。

重要URL到PDF转换需要服务器运行IronPDF的出口HTTP/HTTPS访问。 在部署到生产环境之前确保网络策略允许此操作。)]

查看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");
//: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");
JAVA

该方法正确处理多文件HTML项目。 在上例中,如果 TestInvoice1.html 链接到同一目录下的样式表,IronPDF 将在渲染过程中应用该样式表。 结果是与源文件的浏览器呈现外观相匹配的PDF。

提示在服务器应用程序中调用 renderHtmlFileAsPdf 时,请使用绝对文件路径。 相对路径相对于JVM的工作目录解析,这可能与HTML文件的位置不同。)]

此方法特别适用于在磁盘上维护HTML模板的PDF生成工作流程:发票生成器、报告模板和表单输出系统是常见的使用案例。

如何在Java中设置PDF页面尺寸和方向?

页面大小和方向通过 ChromePdfRenderOptions 类进行控制。 创建一个 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");
//: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");
JAVA

PaperSize 包含 A3 以及 A5 等标准选项。 PaperOrientation 接受 Portrait(默认)或 Landscape

对于非标准尺寸,请使用 setCustomPaperSizeInMillimeters(double width, double height)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");
//: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");
JAVA

请参阅自定义 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");
//: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");
JAVA

将所有边距设置为零会完全去除空白,对于全出血设计(如标签、证书或图形布局)非常有用。

请注意IronPDF边距值以毫米为单位。 值为 0 时,将禁用该边缘的边距。 请注意,打印机驱动程序的边距与IronPDF边距是分开的,因此当打印时,填满页面边到边的内容可能仍会被剪切。)]

欲了解可用代码示例,请访问自定义边距示例

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

IronPDF 支持两种类型的页眉和页脚:基于文本的 (TextHeaderFooter) 和基于 HTML 的 (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");
//: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");
JAVA

{url} 以及 {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");
//: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

提示HTML页眉片段在它们自己的页面上下文中呈现。 外部图像路径必须是绝对URL或可以从运行IronPDF的服务器访问的路径。)]

请参阅页眉和页脚代码示例以获取额外的合并字段选项和多页行为。

如何在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");
//: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");
JAVA

applyStamp 方法支持标准 HTML/CSS。 文本采用半透明的 rgba 颜色,可确保水印清晰可见,同时不遮挡其下方的文档内容。

有关基于图像的水印或应用于特定页面范围的水印,请参阅定制水印Java指南

如何在Java中压缩PDF文件?

对于包含图像的PDF文件,IronPDF可以通过将嵌入图像重新采样为更低分辨率来减少文件大小。 在现有 PdfDocument 上使用 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");
//: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");
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制品添加到部分的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 文件?

使用 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。

Darrius Serrant
全栈软件工程师(WebOps)

Darrius Serrant 拥有迈阿密大学的计算机科学学士学位,目前在 Iron Software 担任全栈 WebOps 市场工程师。从小就被编码吸引,他认为计算机既神秘又易于接触,使其成为创意和问题解决的理想媒介。

在 Iron Software,Darrius 喜欢创造新事物,并简化复杂概念以使其更易理解。作为我们常驻的开发者之一,他还自愿教授学生,与下一代分享他的专业知识。

对于 Darrius 来说,他的工作令人满意,因为它被重视并产生真正的影响。

准备开始了吗?
版本: 2026.5 just released
Still Scrolling Icon

还在滚动吗?

想快速获得证据?
运行示例看着你的HTML代码变成PDF文件。