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 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 文件:

  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

有時您可能需要在轉換為 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。

也可以看看