C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C# XML转PDF

C#结合Spire.Doc for .NET实现将XML转为PDF

作者:2501_93070778

可扩展标记语言(XML)文件是一种标准的文本文件,它使用自定义标签来描述文档的结构及其他特性,本文将演示如何使用 Spire.Doc for .NET 在 C# 和 VB.NET 中实现 XML 到 PDF 的转换,有需要的可以了解下

可扩展标记语言(XML)文件是一种标准的文本文件,它使用自定义标签来描述文档的结构及其他特性。将 XML 转换为 PDF 后,由于 PDF 是一种更加常见且更易访问的文件格式,因此更便于与他人共享。本文将演示如何使用 Spire.Doc for .NET 在 C# 和 VB.NET 中实现 XML 到 PDF 的转换。

安装 Spire.Doc for .NET

首先,你需要将 Spire.Doc for .NET 安装包中包含的 DLL 文件作为引用添加到你的 .NET 项目中。这些 DLL 文件可以通过提供的链接下载,或者通过 NuGet 进行安装。

PM> Install-Package Spire.Doc

XML 转 PDF

以下是使用 Spire.Doc for .NET 将 XML 转换为 PDF 的步骤:

示例代码如下:

using Spire.Doc;

namespace XMLToPDF
{
   class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 Document 实例
            Document mydoc = new Document();
            // 加载 XML 示例文档
            mydoc.LoadFromFile(@"XML Sample.xml", FileFormat.Xml);
            // 将其保存为 PDF 文件
            mydoc.SaveToFile("XMLToPDF.pdf", FileFormat.PDF);
            
        }
    }
}

方法补充

VB.NET实现XML转为PDF

Imports Spire.Doc
Namespace XMLtoPDF
    Class Program
        Private Shared Sub Main(args As String())
            '创建Document类的对象
            Dim doc As New Document()
            '加载XML文档
            doc.LoadFromFile("sample.xml", FileFormat.Xml)
            '保存为PDF文档到指定路径
            doc.SaveToFile("XMLToPDF.pdf", FileFormat.PDF)
        End Sub
    End Class
End Namespace

C代码实现XML到PDF的转换

示例 XML 文件

<?xml version="1.0" encoding="utf-8"?>
<w:document xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
  <w:body>
    <w:p>
      <w:r>
        <w:t>这是一段来自 XML 的标题。</w:t>
      </w:r>
    </w:p>
    <w:p>
      <w:r>
        <w:t>Spire.Doc for .NET 可以帮助我们轻松地将 XML 数据转换为 PDF。</w:t>
      </w:r>
    </w:p>
    <w:p>
      <w:r>
        <w:t>更多信息请访问 Spire.Doc 官方网站。</w:t>
      </w:r>
    </w:p>
  </w:body>
</w:document>

下面我们将通过一个具体的 C# 代码示例,演示如何使用 Spire.Doc for .NET 将 XML 文件转换为 PDF

using Spire.Doc;
using Spire.Doc.Documents; // 确保引入此命名空间以使用 Document 类
namespace XmlToPdfConverter
{
    class Program
    {
        static void Main(string[] args)
        {
            // 假设你的XML文件名为 "SampleData.xml"
            string xmlFilePath = "SampleData.xml"; 
            string pdfOutputPath = "OutputFromXml.pdf";
            try
            {
                // 步骤 1: 创建一个 Document 实例
                Document document = new Document();
                // 步骤 2: 加载 XML 文件
                // Spire.Doc 可以直接加载多种XML格式。如果XML是WordML格式,可以直接加载。
                // 如果是通用数据XML,可能需要先通过XSLT转换为HTML或WordML,再加载。
                // 这里我们假设XML内容是WordML或者Spire.Doc可以直接解析的格式。
                // 如果你的XML只是纯数据,你可能需要先将其转换为HTML字符串,然后使用document.LoadFromHTML()
                // 或者通过编程方式将XML数据填充到Document对象中。
                // 对于通用XML,更常见的方法是将其转换为HTML或RTF,再由Spire.Doc处理。
                // 以下示例展示了直接加载XML文件。
                // 注意:这里需要确保XML文件内容是Spire.Doc可以解析为文档结构的,
                // 例如WordML (WordprocessingML) 或简单的HTML片段。
                // 如果是纯数据XML,此方法可能需要调整。
                document.LoadFromFile(xmlFilePath, FileFormat.Xml);
                // 步骤 3: (可选) 设置PDF转换选项
                // ToPdfParameterList pdfOptions = new ToPdfParameterList();
                // pdfOptions.IsHidden = true; // 转换时是否保留隐藏文本
                // pdfOptions.DisableLink = true; // 是否禁用PDF中的超链接
                // document.SaveToFile(pdfOutputPath, pdfOptions);
                // 步骤 4: 将 Document 保存为 PDF 文件
                document.SaveToFile(pdfOutputPath, FileFormat.PDF);
                Console.WriteLine($"XML 文件 '{xmlFilePath}' 已成功转换为 PDF 文件 '{pdfOutputPath}'。");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"转换过程中发生错误: {ex.Message}");
                Console.WriteLine(ex.StackTrace);
            }
        }
    }
}

C#用XSLT将XML转成HTML,再转PDF

这是最规范、可维护性高的方式,适合结构清晰、有对应XSL样式表的XML(如RSS、定制报表XML)。

示例关键代码:

var xslt = new XslCompiledTransform();
xslt.Load("report.xslt");
using var writer = new StringWriter();
xslt.Transform("data.xml", null, writer);
string html = writer.ToString();
// 后续用 QuestPDF 将 html 渲染为 PDF(需额外 NuGet 包)

到此这篇关于C#结合Spire.Doc for .NET实现将XML转为PDF的文章就介绍到这了,更多相关C# XML转PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文