在本文中,您将学习如何使用 Java 以编程方式将 XML 转换为 PDF。此功能可用于从 XML 动态生成 PDF 文件。此外,本文还提供了用于创建 PDF 文档的完整 XML 模式。
Java XML 到 PDF 转换 API
为了从 XML 生成 PDF 文件,我们将使用 Aspose.PDF for Java。该 API 旨在从 Java 应用程序中动态创建、处理和转换 PDF 文件。您可以 下载 API 的 JAR 或使用以下 Maven 配置安装它。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>21.6</version>
</dependency>
支持 XML 到 PDF 的架构
Aspose.PDF for Java 提供其 XML 模式来定义 PDF 文档的结构。您可以在 此处 找到完整的 XML 模式。
在 Java 中将 XML 转换为 PDF
让我们看看如何使用 Aspose.PDF for Java 将给定的 XML 转换为 PDF。大多数情况下,您将拥有包含应用程序数据的 XML 文档。在这种情况下,您将首先使用 XSLT 将其转换为与 Aspose.PDF 兼容的 XML。那么让我们开始吧。
以下是我们需要转换为 PDF 文档的示例 XML 数据。
<?xml version="1.0" encoding="utf-8" ?>
<Contents>
<Content>Hello World!</Content>
</Contents>
为了使这些数据与 Aspose.PDF XML 兼容,我们将执行 XSLT 转换。为此,我们将在 XSLT 样式表文件中定义一个模板,如下所示。
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="text()"/>
<xsl:template match="/Contents">
<html>
<Document xmlns="Aspose.Pdf" IsAutoHyphenated="false">
<PageInfo>
<DefaultTextState Font = "Helvetica" FontSize="8" LineSpacing="4"/>
<Margin Left="5cm" Right="5cm" Top="3cm" Bottom="15cm" />
</PageInfo>
<Page id="mainSection">
<TextFragment>
<TextSegment>
<xsl:value-of select="Content"/>
</TextSegment>
</TextFragment>
</Page>
</Document>
</html>
</xsl:template>
</xsl:stylesheet>
创建模板文件后,您可以按照以下步骤继续将 XML 转换为 PDF。
- 创建一个 Document 类的对象。
- 通过提供 XML 和 XSLT 文件,使用 Document.bindXml(String, String) 方法绑定 XML。
- 使用 Document.save(String) 方法将 XML 转换为 PDF。
以下代码示例展示了如何使用 Java 将 XML 文件转换为 PDF。
// 创建一个新的 PDF 文档
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document();
// 转换和绑定 XML
pdfDocument.bindXml( "data.xml", "stylesheet.xslt");
// 从 XML 生成 PDF
pdfDocument.save( "generated-pdf.pdf");
生成的 PDF
获取免费 API 许可证
您可以 获得临时许可证 以便在没有评估限制的情况下使用 API。
结论
在本文中,您学习了如何使用 Java 将 XML 转换为 PDF。您可以将此功能集成到您的 Java 应用程序中以从 XML 生成 PDF 文件。您可以使用 文档 以及 GitHub 上提供的源代码示例了解有关 Java PDF API 的更多信息。如果您有任何问题,请随时通过我们的 论坛 告诉我们。