使用nreco pdf生成器在服务器文件夹中保存pdf时不支持Uri

时间:2017-12-08 06:58:17

标签: asp.net-mvc

我有以下代码:

var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();                     
htmlToPdf.PdfToolPath = "~/files/";                           
htmlToPdf.GeneratePdf(template);  

会引发以下错误:

  使用nreco pdf生成器将pdf保存在服务器文件夹中时,不支持Uri。

2 个答案:

答案 0 :(得分:0)

您需要设置一个到您的文件系统的常规路径,例如" C:\ TEMP \ MyFolder文件\&#34 ;.或者使用。而不是〜和反斜杠:

htmlToPdf.PdfToolPath = ".\\files\\";

如果NReco能够为您提供字节数组或流,您应该更喜欢它而不是文件并直接返回。

更新:

在查看了NReco的文档之后,您需要做的就是:

var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();                     
htmlToPdf.PdfToolPath = "<CORRECT_PATH_FOR_TOOL>";                           
var output = htmlToPdf.GeneratePdf(template); 
System.IO.File.WriteAllBytes("<OUTPUT_PATH>", output);

这应该在OUTPUT_PATH中创建你的pdf。

答案 1 :(得分:0)

@OlaFW thanx for your effort.
I got my answer.

var pdfBytes = htmlToPdf.GeneratePdf(template);  
     string filePath = "/files/Myfile.pdf";
     string Url = System.Web.Hosting.HostingEnvironment.MapPath(filePath);                
System.IO.File.WriteAllBytes(Url, pdfBytes);