2014-07-03 100 views
1

我正在創建一個應用程序,我已成功將我的ListView導出爲PDF格式。但是我的PDF有一些問題:PDF的格式非常糟糕。將ListView導出爲PDF

請看:

enter image description here

我使用下面的代碼來導出爲PDF:

protected void ExportToPdf_Click(object sender, EventArgs e) 
    { 
     string File = "PDFCollegeDetails"; 
     var result = GetData().ToList(); 
     ExportListToPDF(result, File);   
    } 

    private void ExportListToPDF(List<CollegeDetail> result, string File) 
    { 
     Response.ContentType = "application/pdf"; 
     Response.AddHeader("content-disposition", "attachment;filename=CollegeDetailsInPdf.pdf"); 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     StringWriter sw = new StringWriter(); 
     HtmlTextWriter hw = new HtmlTextWriter(sw); 
     GridView gridView = new GridView(); 
     gridView.DataSource = result; 
     gridView.DataBind(); 
     gridView.RenderControl(hw); 
     StringReader sr = new StringReader(sw.ToString()); 
     Document pdfDoc = new Document(PageSize.A4, 50f, 50f, 50f, 50f); 
     HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 
     PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
     pdfDoc.Open(); 
     htmlparser.Parse(sr); 
     pdfDoc.Close(); 
     Response.Write(pdfDoc); 
     Response.End(); 
     gridView.AutoGenerateColumns = true; 
    }  
+0

你利用iText?你應該提到你正在使用的特定庫。 –

+0

@PanagiotisKanavos是的,我已經在頂部提到過了。 –

+2

您正在使用縱向A4尺寸的頁面並繪製一個17列的表格....好吧,您期望什麼? – mkl

回答

-1
Response.ContentType = "application/pdf"; 
Response.AddHeader("content-disposition", "attachment;filename=ZoneWiseReport.pdf"); 
Response.Cache.SetCacheability(HttpCacheability.NoCache); 
StringWriter sw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(sw); 
GridViewZoneReport.AllowPaging = false; 
this.BindGridView(); 
GridViewZoneReport.DataBind(); 
GridViewZoneReport.RenderControl(hw); 
GridViewZoneReport.HeaderRow.Style.Add("width", "15%"); 
GridViewZoneReport.HeaderRow.Style.Add("font-size", "10px"); 
GridViewZoneReport.Style.Add("text-decoration", "none"); 
GridViewZoneReport.Style.Add("font-family", "Arial, Helvetica, sans-serif;"); 
GridViewZoneReport.Style.Add("font-size", "8px"); 
StringReader sr = new StringReader(sw.ToString()); 
Document pdfDoc = new Document(PageSize.A2, 7f, 7f, 7f, 0f); 
HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 
PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
pdfDoc.Open(); 
htmlparser.Parse(sr); 
pdfDoc.Close(); 
Response.Write(pdfDoc); 
Response.End();