在本文中,我們將使用 C# 將 XML 文件轉換為 PDF。 Aspose.PDF for .NET API 廣泛支持 XML 轉換功能,因為包含了許多相關的增強功能,應 API 用戶的要求。您可以使用將 XML 導出為 PDF 的這一高效功能來提升您的 .NET 應用程序。讓我們考慮以下與 C# 中的 XML 到 PDF 轉換相關的用例:
在 C# 中將 XML 轉換為 PDF
要將 XML 轉換為 PDF,您需要遵循 Aspose.PDF for .NET API 的 XML Schema,可作為 XSD 文件 使用。以下是我們將轉換為 PDF 的 XML 文件,作為 Hello World 演示。
<?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
有時您可能需要在轉換為 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。