用 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 的简单转换过程:
- 使用
HTMLDocument 类的
HTMLDocument()构造函数之一加载 HTML 文件。您可以从文件、HTML 代码、流或 URL 中加载 HTML(请参阅 创建 HTML 文档 一文)。在示例中,我们使用HTMLDocument(address)构造函数从文件初始化 HTML 文档。 - 创建一个新的
PdfSaveOptions 对象。使用空的
PdfSaveOptions()构造函数转换默认保存选项。 - 使用
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 size、 margins、 file permissions、 media type等。
| Metod | Description |
|---|---|
| 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. |
| setEncryption | This 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,您可以通过编程转换文件,并完全控制各种转换参数。只需遵循几个步骤即可:
- 使用 HTMLDocument 类的 HTMLDocument() 构造函数之一加载 HTML 文件。
- 创建一个新的
PdfSaveOptions 对象,并指定所需的属性。PdfSaveOptions()构造函数初始化了一个PdfSaveOptions类实例,并将其传递给
convertHTML()方法。 - 使用
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 保存选项:
setJpegQuality()指定图像的 JPEG 压缩质量。setBackgroundColor()设置填充背景的颜色。setHorizontalResolution()和setVerticalResolution()设置输出 PDF 文件的水平和垂直分辨率。setPageSetup()指定输出文档的页面大小和页边距。
再举一个 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。只需上传、转换您的文件,几秒钟就能得到结果!
