XML 转 PDF

在本文中,我们将使用 C# 将 XML 文件转换为 PDF。 Aspose.PDF for .NET API 广泛支持 XML 转换功能,因为包含许多相关的增强功能,应 API 用户的要求。您可以使用这种将 XML 导出为 PDF 的高效功能来提升您的 .NET 应用程序。让我们考虑以下与 C# 中 XML 到 PDF 转换相关的用例:

在 C# 中将 XML 转换为 PDF

要将 XML 转换为 PDF,您需要遵循 Aspose.PDF 的 XML Schema for .NET API,它可作为 XSD 文件 获得。以下是我们将转换为 PDF 作为 Hello World 演示的 XML 文件。

<?xml version="1.0" encoding="utf-8" ?>
<Document xmlns="Aspose.Pdf">
  <Page id="mainPage">
    <TextFragment>
      <TextSegment>Hello</TextSegment>
    </TextFragment>
 
    <TextFragment>
      <TextSegment>World!</TextSegment>
    </TextFragment>
  </Page>
</Document>

您需要按照以下步骤将 XML 转换为 PDF 文件:

  1. 初始化 Document 类的对象
  2. 使用 BindXml 方法加载 XML 文件
  3. 保存转换后的 PDF 文件

以下代码片段显示了如何在 C# 中将 XML 转换为 PDF:

// 实例化文档对象
Document doc = new Document();
// 绑定源 XML 文件
doc.BindXml(dataDir + "XML.xml");
// 将 XML 转换为 PDF
doc.Save(dataDir + "XMLToPDF.pdf");

C# 在 XML 中使用 HTML 并转换为 PDF

有时您可能需要在将 XML 转换为 HTML 之前在 XML 中使用 HTML。 Aspose.PDF for .NET API 也支持此功能。但是,HTML 和 XML 标记非常相似。因此,您需要指定 CDATA 标记,以便不将 HTML 解析为 XML 标记。下面的示例 XML 文件包含由 CDATA 表示的 HTML 以避免任何异常:

<?xml version="1.0" encoding="utf-8" ?>
<Document xmlns="Aspose.Pdf">
  <Page id="mainSection">
    <HtmlFragment>
      <![CDATA[
        <font style="font-family:Tahoma; font-size:40px;">This is Html String.</font>
        ]]>
    </HtmlFragment>
  </Page>
</Document>

您可以通过以下步骤将此 XML 文件转换为 PDF:

  1. 实例化 Document 类对象
  2. 加载输入 XML 文件
  3. 保存输出 PDF 文件

下面的代码片段显示了如何在 C# 中将包含 HTML 的 XML 文件转换为 PDF:

// 实例化文档对象
Document doc = new Document();
// 绑定源 XML 文件
doc.BindXml(dataDir + "XML.xml");
// 将 XML 转换为 PDF
doc.Save(dataDir + "XMLToPDF.pdf");

在 C# 中将 XML 和 XSLT 转换为 PDF

有时您可能有一个包含重要应用程序数据的现有 XML 文件,并且您希望使用该 XML 文件生成 PDF 报告。在这种情况下,您可以创建 XSLT 文件来将现有的 XML 文档转换为 Aspose.PDF 的兼容 XML 文档。然后您可以继续将 XML 转换为 PDF。让我们通过简单而基本的示例来学习这一点:

<?xml version="1.0" encoding="utf-8" ?>
<Contents>
  <Content>Hello World!</Content>
</Contents>
<?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 文件不遵循 Aspose.PDF for .NET API 的 XML 架构。但是,XSLT 文件将其转换为所需的兼容性。现在您可以按照以下步骤使用 XSLT 将此类 XML 转换为 PDF:

  1. 初始化 PDF 文档
  2. 绑定 XML 和 XSLT 文件
  3. 保存输出的 PDF 文档

下面的代码片段基于这些步骤,展示了如何在 C# 中将 XML 转换为 PDF:

//创建pdf文档
Aspose.Pdf.Document pdf = new Aspose.Pdf.Document();
//将 XML 和 XSLT 文件绑定到文档
try
{
    pdf.BindXml(dataDir + "\\HelloWorld.xml", dataDir + "\\HelloWorld.xslt");
}
catch (System.Exception)
{

    throw;
}
            
//保存文档
 pdf.Save(dataDir + "HelloWorldUsingXmlAndXslt.pdf");

结论

我们已经学习了如何在 C# 中将 XML 转换为 PDF 文件,前提是 XML 遵循所提到的 API 架构。考虑到 HTML 标记的流行度和可用性,我们还考虑了需要在源 XML 文件中包含一些 HTML 的场景。此外,我们还探讨了在现有 XML 文件不遵循模式时如何将 XML 和 XSLT 转换为 PDF。

也可以看看