用 Java 将 HTML 转换为 PDF

PDF 文件与其他格式相比有许多优点,有时您可能需要将 HTML 转换为 PDF。这对于创建高质量、便于打印的网页版本、生成报告或共享难以编辑或修改的文档尤其有用。

Aspose.HTML for Java 的主要功能之一就是能够轻松可靠地将 HTML 文档转换为其他格式。本文将介绍如何使用 Converter 类中的 convertHTML() 方法将 HTML 转换为 PDF,以及如何应用 PdfSaveOptions

通过一行 Java 代码将 HTML 转换为 PDF

HTML 到 PDF 的转换是一个非常受欢迎的功能,而 Aspose.HTML for Java 提供了一个简单的解决方案。通过 Converter 类中的静态方法,您只需一行代码就能将 HTML 文档转换为 PDF 文件!

1// Convert HTML to PDF in one line using Java
2
3// Invoke the convertHTML() method to convert the HTML to PDF
4Converter.convertHTML("<h1>Convert HTML to PDF!</h1>", ".", new PdfSaveOptions(), "convert-with-single-line.pdf");

在示例中,我们使用了转换器类的 convertHTML(content, baseUri, options, outputPath) 方法,该方法需要四个参数:包含要转换的 HTML 代码的字符串、输入 HTML 文件的基本文件夹、PdfSaveOptions 类的实例以及保存转换后文件的输出文件路径。

用 Java 将 HTML 转换为 PDF

让我们一步步了解 HTML 到 PDF 的简单转换过程:

  1. 使用 HTMLDocument 类的 HTMLDocument() 构造函数之一加载 HTML 文件。您可以从文件、HTML 代码、流或 URL 中加载 HTML(请参阅 创建 HTML 文档 一文)。在示例中,我们使用 HTMLDocument(address) 构造函数从文件初始化 HTML 文档。
  2. 创建一个新的 PdfSaveOptions 对象。使用空的 PdfSaveOptions() 构造函数转换默认保存选项。
  3. 使用 Converter 类的 сonvertHTML(document, options, outputPath) 方法将 HTML 保存为 PDF 文件。

请查看以下 Java 代码片段,其中显示了 HTML 到 PDF 的转换过程,并附有逐步说明:

 1// Convert HTML to PDF using Java
 2
 3// Prepare HTML code and save it to a file
 4String code = "<span>Hello, World!!</span>";
 5try (java.io.FileWriter fileWriter = new java.io.FileWriter("link-to-incoming-document.html")) {
 6    fileWriter.write(code);
 7}
 8
 9// Initialize an HTML document from the file
10HTMLDocument document = new HTMLDocument("link-to-incoming-document.html");
11
12// Initialize PdfSaveOptions
13PdfSaveOptions options = new PdfSaveOptions();
14
15// Convert HTML to PDF
16Converter.convertHTML(document, options, "document-output.pdf");

保存选项 – PdfSaveOptions 类

Aspose.HTML for Java 允许使用默认或自定义保存选项将 HTML 转换为 PDF。通过 PdfSaveOptions,您可以自定义渲染过程。您可以指定 page sizemarginsfile permissionsmedia type等。

MetodDescription
setJpegQuality(value)Specifies the quality of JPEG compression for images. The default value is 95.
getCss()Gets a CssOptions object which is used for configuration of CSS properties processing.
setBackgroundColor(value)Sets the color that will fill the background of every page. By default, this property is Transparent.
setPageSetup(value)This method sets a page setup object and uses it for configuration output page-set.
setHorizontalResolution(value)Sets horizontal resolution for internal images, in pixels per inch. By default this property is 300 dpi.
setVerticalResolution(value)Sets vertical resolution for output images in pixels per inch. The default value is 300 dpi.
setEncryptionThis method gets or sets encryption details. If it is not set, then no encryption will be performed.

要了解有关 PdfSaveOptions 的更多信息,请阅读 Fine-Tuning Converters 一文。

您可以从 GitHub 下载完整的示例和数据文件。

使用 PdfSaveOptions 将 HTML 转换为 PDF

使用 Aspose.HTML for Java,您可以通过编程转换文件,并完全控制各种转换参数。只需遵循几个步骤即可:

  1. 使用 HTMLDocument 类的 HTMLDocument() 构造函数之一加载 HTML 文件。
  2. 创建一个新的 PdfSaveOptions 对象,并指定所需的属性。PdfSaveOptions()构造函数初始化了一个PdfSaveOptions类实例,并将其传递给 convertHTML()方法。
  3. 使用 Converter 类的 сonvertHTML(document, options, outputPath) 方法将 HTML 保存为 PDF 文件。

下面的 Java 示例展示了如何使用 PdfSaveOptions,创建具有自定义页面大小、页边距、分辨率、背景颜色和压缩指定的 PDF 文件:

 1// Convert HTML to PDF in Java with custom page settings
 2
 3// Initialize an HTML document from a file
 4HTMLDocument document = new HTMLDocument("drawing.html");
 5
 6// Initialize PdfSaveOptions. Set up the page-size 500x300 pixels, margins,
 7// resolutions and change the background color to AliceBlue
 8PdfSaveOptions options = new PdfSaveOptions();
 9options.setHorizontalResolution(new Resolution(200, UnitType.AUTO));
10options.setVerticalResolution(new Resolution(200, UnitType.AUTO));
11options.setBackgroundColor(Color.getAliceBlue());
12options.setJpegQuality(100);
13options.getPageSetup().setAnyPage(new Page(new Size(500, 300), new Margin(20, 10, 10, 10)));
14
15// Convert HTML to PDF
16Converter.convertHTML(document, options, "drawing-options.pdf");

在上面的示例中,使用了多个 PDF 保存选项:

再举一个 Java 示例。在这里,我们从头开始创建 HTML 文档–编写 HTML 代码并将其保存到文件中。然后应用 PdfSaveOptions 将 HTML 转换为 PDF:

 1// Convert HTML to PDF with custom settings using Java
 2
 3// Prepare HTML code and save it to a file
 4String code = "<h1>  PdfSaveOptions Class</h1> " +
 5        "<p>Using PdfSaveOptions Class, you can programmatically " +
 6        "apply a wide range of conversion parameters " +
 7        "such as BackgroundColor, HorizontalResolution, VerticalResolution, PageSetup, etc.</p>";
 8
 9FileHelper.writeAllText("save-options.html", code);
10
11// Initialize an HTML Document from the HTML file
12HTMLDocument document = new HTMLDocument("save-options.html");
13
14// Set up the page-size, margins and change the background color to AntiqueWhite
15PdfSaveOptions options = new PdfSaveOptions();
16options.setBackgroundColor(Color.getAntiqueWhite());
17options.getPageSetup().setAnyPage(
18        new Page(
19                new Size(Length.fromInches(4.9f), Length.fromInches(3.5f)),
20                new Margin(30, 20, 10, 10)
21        )
22);
23
24// Convert HTML to PDF
25Converter.convertHTML(document, options, "save-options-output.pdf");

结论

将 HTML 转换为 PDF 是创建高质量、可共享和便于打印文档的一项有用功能。Aspose.HTML for Java 通过 Converter类提供了一个强大的解决方案,允许您使用 convertHTML()和可定制的 PdfSaveOptions等灵活的方法轻松地将 HTML 转换为 PDF。

PdfSaveOptions 类允许开发人员通过指定页面大小、页边距、分辨率、背景颜色、压缩选项、加密等来定制输出,从而确保输出结果的准确性和专业性。如果您要创建报告并将网页内容保存为 PDF 文档,Aspose.HTML for Java 将以最少的代码简化这一过程。

Aspose.HTML 提供免费的在线 HTML 到 PDF 转换器,可将 HTML 高质量、方便快捷地转换为 PDF。只需上传、转换您的文件,几秒钟就能得到结果!

文本 “HTML 到 PDF 转换器”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.