Xuất GridView sang PDF sử dụng itextsharp

Khi xuất dữ liệu từ GridView sang PDF sử dụng itextsharp, nếu không có tùy chọn độ rộng cho cột thì itextsharp tự động lấy độ rộng của các cột bằng nhau ( ví dụ nếu độ rộng của GridView là 1000px, và GridView có 5 cột thì mỗi cột có độ rộng mặc định là 200px) => không hợp lý trong một số tình huống.

– đề lấy độ rộng của GridView khi export sang PDF ta sử dụng đoạn code sau:

int[] widths = new int[this.GridViewReport.Columns.Count]; //Tạo mảng độ rộng

int defaultWidth = Convert.ToInt32(document.PageSize.Width / noOfColumns); //độ rộng mặc định cho mỗi column
int w = 0;
for (int i = 0; i < this.GridViewReport.Columns.Count; i++)
{

w = (int)this.GridViewReport.Columns[i].ItemStyle.Width.Value;

widths[i] = (w > 0) ? w : defaultWidth;
}

iTextSharp.text.pdf.PdfPTable mainTable = new iTextSharp.text.pdf.PdfPTable(noOfColumns);
mainTable.DefaultCell.BorderWidth = 1;
mainTable.DefaultCell.Padding = 3;
mainTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
mainTable.SetWidths(widths);

Tham khảo một số link :

http://aspsnippets.com/Articles/Export-ASP.Net-GridView-to-PDF-with-Custom-Columns-Widths-using-iTextSharp.aspx

http://forums.asp.net/t/1649208.aspx/1

http://technico.qnownow.com/export-gridview-data-pdf-using-itextsharp/

Advertisements