在本文中,我们将使用 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 文件:
以下代码片段显示了如何在 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:
- 实例化 Document 类对象
- 加载输入 XML 文件
- 保存输出 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:
下面的代码片段基于这些步骤,展示了如何在 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。