Good day everyone !
Before converting a gridview to PDF I can modify the font size and color using:
gridview.HeaderRow.Style.Add("font-family","Arial, Helvetica, sans-serif;"); gridview.HeaderRow.Style.Add("font-size","7.20px"); gridview.HeaderRow.Style.Add("color","#284775");
gridview.Style.Add("font-family","Arial, Helvetica, sans-serif;");
gridview.Style.Add("font-size","6px");
The gridview has different column widths because of the information that is being displayed, those sizes are set .aspx file. But, the generated pdf file auto adjusts the width of each column to be the same size, therefore the information is shrinked and doesnt look good..
I tried the following:
gridview.Width =100;
or
gridview.Style.Add("width","100");
or
gridview.Columns[3].ItemStyle.Width =Unit.Pixel(10);
And many more but haven't been able to adjust the gridview to it's original columns width.
How can I do that?
Thanks in advance.
This is the code I use to generate the PDF file:
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=UserDetails.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.HeaderRow.Style.Add("width", "20%");
GridView1.HeaderRow.Style.Add("font-size", "10px");
GridView1.RenderControl(hw);
GridView1.Style.Add("text-decoration", "Underline");
GridView1.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
GridView1.Style.Add("font-size", "8px");
GridView1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();