[英]generate invoices for print from xml in c#
我已经从rest服务的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>
使用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);
这需要Package Nustache(因此:使用Nustache.Core;是必需的)。 可以在github或NuGet处找到它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.