2017-09-13 50 views
-2

我正在使用C#和PDFSharp導出爲PDF功能。我收到此錯誤:值不能爲空。參數名稱:PDFsharp中的elementId

Value cannot be null. 
Parameter name: elementId 

的錯誤是在這條線: PdfDocument document = PdfGenerator.GeneratePdf(htmlcontenttbl.ToString(), PdfSharp.PageSize.A4, 30);

這裏是整個方法:如果你有一個空白錨標記,可能會發生

public bool ExportPdf(string htmlcontenttbl) 
    { 
     Response.ClearContent(); 
     Response.ClearHeaders(); 

     Response.Buffer = true; 
     Response.ContentType = "application/octet-stream"; 
     Response.AddHeader("Content-Disposition", "attachment;filename=Myfile.pdf"); 
     //Response.AddHeader("Content-Disposition", "inline;filename=file.pdf"); 
     //Response.AppendHeader("Content-Disposition", "attachment; filename=Myfile.pdf"); 
     Response.Charset = ""; 
     StringWriter sw = new StringWriter(); 
     HtmlTextWriter htw = new HtmlTextWriter(sw); 

     PdfDocument document = PdfGenerator.GeneratePdf(htmlcontenttbl.ToString(), PdfSharp.PageSize.A4, 30); 
     var config = new PdfGenerateConfig(); 
     config.PageOrientation = PageOrientation.Landscape; 
     config.PageSize = PageSize.A4; 
     config.MarginBottom = 30; 
     config.MarginTop = 30; 
     //PdfDocument document = PdfGenerator.GeneratePdf(htmlcontenttbl, config); 

     byte[] bytes = null; 
     using (MemoryStream stream = new MemoryStream()) 
     { 
      document.Save(stream, true); 
      bytes = stream.ToArray(); 
     } 

     //var path1 = Server.MapPath("~/Images/" + DateTime.Now.TimeOfDay.Ticks + "result.pdf"); 
     //System.IO.File.WriteAllBytes(path1, bytes); 
     //Response.TransmitFile(path1, 0, bytes.Length); 
     //Response.OutputStream.Write(bytes, 0, bytes.Length); 

     Response.BinaryWrite(bytes); 
     Response.Flush(); 
     Response.End(); 

     return true; 
    } 
+3

我們可以看到堆棧跟蹤嗎? –

+2

堆棧跟蹤真的有幫助,沒有名爲elementId的參數。 –

+0

'ScrollToElement'是該項目中引發此異常的唯一地方:https://github.com/ArthurHub/HTML-Renderer/search?utf8=%E2%9C%93&q=elementId&type=但是不知道它來自何處以及爲什麼參數是'null'**或空**。 –

回答

0

這個例外。

它可能最終從here生成。

您應該刪除空白錨標記。

相關問題