2017-09-13 32 views
-2

私は、C#とPDFSharpを使用してPDFの書き出し機能に取り組んでいます。私はこのエラーを取得しています:値はnullにはできません。パラメータ名:elementId in PDFsharp

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から生成される可能性があります。

空のアンカータグを削除する必要があります。

関連する問題