2016-05-11 30 views
0

我從休息服務的json帖子創建了一個xml文件,並且希望使用這些信息爲文件/請求中的每個-Node創建一個pdf文件。我如何用模板和給定的變量生成這樣的pdf?如何以這種方式填充變量,以及如何創建單獨的文件? 我查看了Fo.Net,但發現該項目似乎已經死亡,並且模板很複雜。在c#中生成從xml打印的發票#

然後我查看了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> 

回答

0

使用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,或在這裏NuGet