Avatar of AZZA-KHAMEES
AZZA-KHAMEESFlag for Bahrain asked on

Export Grid view to PDF with specific table width

Hi Experts
i am facing a problem in exporting to PDF since the grid view contain an Arabic text, so i changed my code and it working, the problem is the table was very small to handle the content, how can i change to width? and how can i export the same look and feel of the grid view to the PDF, also is it possible to export it as landscape document

        DataTable dt = GetData(SecCode, DirCode);
        GridView1.DataSource = dt;

        try
        {
            
            iTextSharp.text.pdf.PdfPTable table = new iTextSharp.text.pdf.PdfPTable(GridView1.Columns.Count);
            table.RunDirection = PdfWriter.RUN_DIRECTION_LTR;
            BaseFont bf = BaseFont.CreateFont("c:\\\\windows\\\\fonts\\\\tahoma.ttf", BaseFont.IDENTITY_H, true);
            iTextSharp.text.Font f2 = new iTextSharp.text.Font(bf, 8, iTextSharp.text.Font.NORMAL);
            
            //Transfer rows from GridView to table
            for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
            {
                if (GridView1.Rows[i].RowType == DataControlRowType.DataRow)
                {
                    for (int j = 0; j <= GridView1.Columns.Count - 1; j++)
                    {
                        string cellText = Page.Server.HtmlDecode(GridView1.Rows[i].Cells[j].Text);
                        iTextSharp.text.pdf.PdfPCell cell = new iTextSharp.text.pdf.PdfPCell(new Phrase(100, cellText, f2));
                        
                        
                        table.AddCell(cell);
                    }
                }
            }
            //Create the PDF Document
            Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
            PdfWriter.GetInstance(pdfDoc, Page.Response.OutputStream);
            pdfDoc.Open();
            Chunk c = new Chunk("Export GridView to PDF \n", FontFactory.GetFont("Verdana", 15));
            Paragraph p = new Paragraph();
            p.Alignment = Element.ALIGN_CENTER;
            p.Add(c);
            pdfDoc.Add(p); // add title            
            pdfDoc.Add(table); // add the table
            pdfDoc.Close();
            Page.Response.ContentType = "application/pdf";
            Page.Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf");
            Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Page.Response.Write(pdfDoc);
            Page.Response.End();
        }
        catch (Exception ex)
        {
            Page.Response.Write(ex.Message);
        }

Open in new window


please help me solving this problem
C#ASP.NET.NET Programming

Avatar of undefined
Last Comment
AZZA-KHAMEES

8/22/2022 - Mon
Hiran Desai

are you searching for ?

PdfPTable table = new PdfPTable(2);
//actual width of table in points
table.TotalWidth = 216f;
ASKER
AZZA-KHAMEES

thank you for the reply, i manage to change the width of the of the columns using this

int[] intTblWidth = { 10, 10, 25, 50,25,25,50,10,50,10 };
table.SetWidths(intTblWidth);

Open in new window


1- how can i export the same look and feel of the grid view to the PDF?

2- is it possible to export it as landscape document?

3- also how can i change the margin of the exported PDF?
ASKER CERTIFIED SOLUTION
AZZA-KHAMEES

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
See how we're fighting big data
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
ASKER
AZZA-KHAMEES

found the best solution
Your help has saved me hundreds of hours of internet surfing.
fblack61