【问题标题】:generate invoices for print from xml in c#在 C# 中从 xml 生成打印发票
【发布时间】:2016-09-06 18:11:58
【问题描述】:

我从休息服务的 json 帖子创建了一个 xml 文件,并希望使用该信息为文件/请求中的每个 -Node 创建一个 pdf 文件。如何使用模板和给定变量生成这样的 pdf?如何以这种方式填充变量以及如何创建单独的文件? 我查看了Fo.Net,但发现该项目似乎已死并且模板很复杂。

然后我研究了 PrinceXML,并被困在如何使用模板引擎替换模板中的变量?我可以使用RazorEngine,如果可以,会是什么样子?

最后,是否有与princeXML 一样好的开源替代品?

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>Test</title></head>
<body>
Hello World! FNR: <!-- how would one add a variable here? --><br>
<br>
</body>
</html>

XML:

<?xml version="1.0" encoding="utf-8"?>
<PdfPrinter>
  <Document>
    <FNR>FNR</FNR>
    <KNR>KNR</KNR>
    <G>G</G>
    <LN>LN</LN>
</Document>
  <Document>
    <FNR>  00</FNR>
    <KNR>555555</KNR>
    <G>1</G>
    <LN>02</LN>
</Document>
</PdfPrinter>

【问题讨论】:

    标签: c# .net xml pdf-generation razorengine


    【解决方案1】:

    使用 Nustache,模板 html 应如下所示:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
    <title>Test</title></head>
    <body><br>
    Hello World! FNR: {{fnr}}, KNR: {{knr}} Uhrzeit: {{date}} <!-- how would one add a variable here? --><br>
    <br>
    <br>
    </body>
    </html>
    

    {{fnr}} 标签可以通过以下方式替换为您自己的代码数据:

    var data = new { knr = "123456", fnr = 10, date = DateTime.Now.ToString() };

    或:

     internal class Customer
        {
            public string CustomerID {get; set;}
            public string Forename { get; set; }
            public string Surname { get; set; }
        }
    
    
    
    Customer user = new Customer();
    Render.FileToFile(templateFile, user, outputFile);
    

    这需要包 Nustache(因此:使用 Nustache.Core; 是必要的)。可以在githubNuGet 找到它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多