While working on generating PDF in Asp.Net MVC3, I got a peculiar error while rendering the PDF in Chrome browsers, which is not being found in any other browsers like Internet Explorer or Fire Fox.
This error comes because chrome browsers doesn't ignore duplicate headers. This can be addressed easily the following ways, if you or your web app is sending out headers. Then check the following things:
1. Enclose fileName using “”. i.e
Response.Addheader('Content-Disposition: attachment; filename="' + fileName '"');
instead of
Response.Addheader('Content-Disposition: attachment; filename='+ fileName);
2. If possible replace spaces and commas (,) with underscores (_)
string regExp = @"[^\w\d]";
Response.AddHeader("content-disposition", "attachment;filename=" + "Test_PDF_" + Regex.Replace(model.CompanyName, regExp, "_")+ "_" +
Regex.Replace(model.FullName, regExp, "_") + "_" + DateTime.Now.ToShortDateString());teString());
3. Explicitly tell Asp.Net MVC to override headers by setting optional replace parameter to true.Response.AddHeader("Content-type: application/pdf",true);
Happy Coding!
No comments:
Post a Comment