将 xmlDocument 对象数据转换为 pdf

Posted

技术标签:

【中文标题】将 xmlDocument 对象数据转换为 pdf【英文标题】:converting xmlDocument object data to pdf 【发布时间】:2017-12-08 22:05:18 【问题描述】:
       XmlDocument doc = new XmlDocument();


        string a=textBox1.Text;
        doc.LoadXml(a.Substring(a.IndexOf(Environment.NewLine)));

        XmlWriterSettings settings = new XmlWriterSettings();

        settings.Indent = true;

        XmlWriter writer = XmlWriter.Create("data.xml", settings);
        doc.Save(writer);

在上面的代码中将文本框内容转换为 xml 文件。现在我需要处理 xmlDocument 对象(doc)的每个元素并需要创建 pdf。

我的文本框中的字符串就像

你好

我的 XML 文件 data.xml 保存在项目的调试文件夹中 现在我的 pdf 应该包含一个表格,其中包含一行和一个包含“Hello”的单元格。 谁能帮我做这件事。我对编程很陌生。

【问题讨论】:

您将不得不自己尝试解决问题,您只需通过谷歌搜索即可找到大量资源(即***.com/a/2937805/292411)。如果您遇到特定问题,可以在这里提问。 【参考方案1】:

这是一个比较模糊的问题,我不知道“data.xml”可以有什么样的内容,以及它应该如何映射到PDF文件。 您提到了“Hello”作为示例,但无法加载为 XmlDocument...

不过,这里有一个小示例,希望能帮助您入门(用于创建我使用 GemBox.Document 的 PDF 文件):

string a = @"
<table>
  <row>
    <cell>Hello 1-1</cell>
    <cell>Hello 1-2</cell>
  </row>
  <row>
    <cell>Hello 2-1</cell>
    <cell>Hello 2-2</cell>
  </row>
</table>";

XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(a.Substring(a.IndexOf(Environment.NewLine)));

XmlWriterSettings settings = new XmlWriterSettings()   Indent = true ;
XmlWriter writer = XmlWriter.Create("data.xml", settings);
xmlDocument.Save(writer);

ComponentInfo.SetLicense("FREE-LIMITED-KEY");
DocumentModel pdfDocument = new DocumentModel();

Table table = new Table(pdfDocument);
table.TableFormat.PreferredWidth = new TableWidth(100, TableWidthUnit.Percentage);
pdfDocument.Sections.Add(new Section(pdfDocument, table));

foreach (XmlNode xmlRow in xmlDocument.SelectNodes("/table/row"))

    TableRow row = new TableRow(pdfDocument);
    table.Rows.Add(row);

    foreach (XmlNode xmlCell in xmlRow.SelectNodes(".//cell"))
        row.Cells.Add(
            new TableCell(pdfDocument,
                new Paragraph(pdfDocument, xmlCell.InnerText)));


pdfDocument.Save("sample.pdf");

这里还有生成的“sample.pdf”:

【讨论】:

以上是关于将 xmlDocument 对象数据转换为 pdf的主要内容,如果未能解决你的问题,请参考以下文章

将 XDocument 转换为 XmlDocument,反之亦然

如何将 XmlDocument 转换为数组<byte>?

WebService 从我的 XmlDocument 中删除 <xml> 标记

将ArrayCollection或对象转换为XML

将带有“&”的 XML 读入 C# XMLDocument 对象

c# .net 怎么将一个xml字符串 转换成一个xmlnode ,(不是xmldocument)