【问题标题】:C# - Save XML file as PDF as Raw Image (not converting)C# - 将 XML 文件另存为 PDF 作为原始图像(不转换)
【发布时间】:2021-10-20 15:01:03
【问题描述】:

我正在尝试将 xml 文件原样保存为 PDF。换句话说,我正在尝试创建显示 XML 内容的 PDF 文件,如屏幕截图(如原始屏幕截图)。我的客户不知何故需要它。我在stackoverflow上真的找不到同样的问题。无论如何我可以使用 iText 或其他一些库来做到这一点吗?

谢谢!

【问题讨论】:

  • 位太宽泛了。您需要获取 XML 文件的字符串表示形式,并使用 PDF 创建库来创建文本 PDF 文档
  • 您可以 format the XML 然后将其保存为 PDF 并使用等宽字体保留格式,例如如Adding text to a PDF file from a text file所示。
  • 因为 .NET 没有内置的 PDF 渲染功能,最好先尝试一下,如果特定库出现问题,请提交问题。获取 xml 文件的内容将非常容易,但要回答如何取决于要求。比如需要格式化吗?

标签: c# .net xml pdf itext


【解决方案1】:

如果您在浏览器中加载 xml,您可以轻松保存为可搜索的 PDF

在 shell 调用中(如果需要,用 chrome 替换 msedge)

"path to\msedge.exe" --headless --disable-gpu --print-to-pdf="out path\xml.pdf" --enable-logging "file://path to A\file.xml"

启用日志记录会有所帮助,因为它可能需要 很长时间 来处理而没有任何视觉进展。

[0818/231038.640:INFO:headless_shell.cc(648)] Written to file ...\xml.pdf.

您还可以添加--no-margins 和--print-to-pdf-no-header。另外,如果添加一些样式,请考虑--run-all-compositor-stages-before-draw,但我不知道这是否适用于 xml。

ForGet Image --screenshot 作为 40 页高的 XML,因为 JPEG 不能很好地转换为 PDF。我试过:-)

如果您希望将其作为图像 PDF,则使用诸如此类的命令行查看器将 PDF 重新打印为 PDF,因为它只是 打印为图像输出 :-) 还请注意它可以在另外读取黑白格式的 XML(无 linting)。

但尚未通过command line print 测试过它对 XML2PDF 的处理能力

SumatraPDF -print-to "My Print to PDF" "path to\filename.pdf" (or xml in mono)

注意“我的打印到 PDF”是您需要根据需要配置的无提示端口。

【讨论】:

    【解决方案2】:

    首先从 XML 文件中提取文本:

    XmlDocument doc = new XmlDocument();
    doc.Load("c:\\temp.xml");
    string myText;
    foreach(XmlNode node in doc.DocumentElement.ChildNodes){
       myText= node.InnerText; //or loop through its children as well
    }
    

    然后创建一个 PDF 文件并将此文本传递给它

    在这种情况下,我使用 PDFFlow 库来创建 pdf 文档

    var DocumentBuilder.New()  
      .AddSection().AddParagraphToSection(myText).ToDocument()  
       .Build("Result.PDF"); 
    

    【讨论】:

      猜你喜欢
      • 2019-08-05
      • 1970-01-01
      • 2022-01-09
      • 2015-11-01
      • 2011-03-30
      • 2019-05-06
      • 2013-08-13
      • 1970-01-01
      相关资源
      最近更新 更多