我在我的代码中收到错误,从asp.net页面生成pdf文件 [英] i am getting error in my code to generate pdf file from asp.net page

查看:50
本文介绍了我在我的代码中收到错误,从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 setting EnableEventValidation="false" property to @Page directive of aspx page.

Refer RegisterForEventValidation can only be called during Render();[^]


这篇关于我在我的代码中收到错误,从asp.net页面生成pdf文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆