在本文中,您將了解如何使用 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 的更多信息。如果您有任何疑問,請隨時通過我們的 論壇 告訴我們。