我在我的代码中收到错误,从asp.net页面生成pdf文件 [英] i am getting error in my code to generate pdf file from asp.net page
本文介绍了我在我的代码中收到错误,从asp.net页面生成pdf文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
protected void Submitbtn_Click(对象发件人,EventArgs e)
{
{Response.ContentType = 应用/ PDF跨度>;
Response.AddHeader( content-disposition, attachment; filename = FileName.pdf);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter w = new HtmlTextWriter(sw);
print.RenderControl(w)
string htmWrite = sw.GetStringBuilder()。ToString();
htmWrite = Regex.Replace(htmWrite, , );
htmWrite = htmWrite.Replace( \\\\ n, );
StringReader reader = new StringReader(htmWrite);
文件doc = new 文件(PageSize.A4,10f,10f,100f,0f);
string pdfFilePath = Server.MapPath( 。)+ / PDFFiles;
HTMLWorker htmlparser = new HTMLWorker(doc);
PdfWriter.GetInstance(doc,Response.OutputStream);
doc.Open();
尝试
{
htmlparser.Parse(读者);
doc.Close();
Response.Write(doc);
Response.End();
}
catch (例外)
{}
最后
{
doc.Close();
}
public 覆盖 void VerifyRenderingInServerForm(控制控件)
{
/ * 验证控件是否已呈现* /
}
}
显示错误
RegisterForEventValidation只能在Render()期间调用;
解决方案
尝试设置EnableEventValidation =false
属性到aspx页面的@Page指令。
参考 RegisterForEventValidation只能在Render()期间调用; [ ^ ]
protected void Submitbtn_Click(object sender, EventArgs e) { { Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment;filename=FileName.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); StringWriter sw = new StringWriter(); HtmlTextWriter w = new HtmlTextWriter(sw); print.RenderControl(w) string htmWrite = sw.GetStringBuilder().ToString(); htmWrite = Regex.Replace(htmWrite, "", ""); htmWrite = htmWrite.Replace("\r\n", ""); StringReader reader = new StringReader(htmWrite); Document doc = new Document(PageSize.A4, 10f, 10f, 100f, 0f); string pdfFilePath = Server.MapPath(".") + "/PDFFiles"; HTMLWorker htmlparser = new HTMLWorker(doc); PdfWriter.GetInstance(doc, Response.OutputStream); doc.Open(); try { htmlparser.Parse(reader); doc.Close(); Response.Write(doc); Response.End(); } catch (Exception ) { } finally { doc.Close(); } public override void VerifyRenderingInServerForm(Control control) { /* Verifies that the control is rendered */ } } error shown is RegisterForEventValidation can only be called during Render();解决方案Try settingEnableEventValidation="false"
property to @Page directive of aspx page.
Refer RegisterForEventValidation can only be called during Render();[^]
这篇关于我在我的代码中收到错误,从asp.net页面生成pdf文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文