Asp.net 文件不以';开头%PDF-';
我正在将HTML内容导出为PDFAsp.net 文件不以';开头%PDF-';,asp.net,pdf,export,Asp.net,Pdf,Export,我正在将HTML内容导出为PDF System.IO.StringWriter sWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(sWriter); Response.Buffer = true; FormId.RenderControl(htmlWriter); Response.ContentTyp
System.IO.StringWriter sWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWriter = new HtmlTextWriter(sWriter);
Response.Buffer = true;
FormId.RenderControl(htmlWriter);
Response.ContentType = "application/pdf";
// Added appropriate headers
Response.AddHeader("Content-Disposition", "inline; filename=XXX.pdf");
Response.AddHeader("Content-Length", htmlWriter.ToString().Length.ToString());
Response.Output.Write(sWriter.ToString());
Response.Flush();
Response.Close();
FormId是我过去的Div内容
我收到的错误是“文件不是以“%PDF-”开头”
我已经包括了响应。clear();输出不来您在输出流中呈现的是html(如您所说的div),而不是pdf,因此这两者是结合在一起的。这会导致任何查看输出的应用程序将其解释为已损坏的文件。我会尝试删除前两行:
Response.Buffer = true;
FormId.RenderControl(htmlWriter);
如果这不能解决问题,请在所有操作之前添加Response.Clear()调用
这都是假设sWriter在这个代码块的开头包含PDF——如果不是,多一些上下文可能会有所帮助
一些建议:如果可能的话,请将其从页面中移到.ashx或其他IHttpHandler。在开始输出流之前执行Response.Clear()。我在将一些HTML内容写入PDF时也遇到了同样的问题 我最终发现无效的HTML内容导致了这个问题 例如,
标记而不关闭标记
一旦我把正确的结束标签,它的工作很好 很好的建议,http处理程序的开销比页面处理程序低得多。sWriter是否真的为您提供了有效的PDF文件?检查它的前四个字节。