在 c# 中从 xml 生成打印发票
generate invoices for print from xml in c#
我已经从休息服务的 json post 创建了一个 xml 文件,并希望使用该信息为 [=] 中的每个节点创建一个 pdf 文件25=]。我如何使用模板和给定的变量生成这样的 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);
这需要 Nustache 包(因此:使用 Nustache.Core; 是必要的)。可以在 github, or here at NuGet.
找到它
我已经从休息服务的 json post 创建了一个 xml 文件,并希望使用该信息为 [=] 中的每个节点创建一个 pdf 文件25=]。我如何使用模板和给定的变量生成这样的 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);
这需要 Nustache 包(因此:使用 Nustache.Core; 是必要的)。可以在 github, or here at NuGet.
找到它