在C#Windows窗体中以PDF格式获取Gridview数据?

问题描述:

我想将datagridview的数据转换为PDF文件。例如,如果我按button1我应该得到datagridview数据为pdf。在C#Windows窗体中以PDF格式获取Gridview数据?

我该怎么做?

+0

尝试itextsharp库 – fabricio 2013-02-20 11:53:10

+0

你到目前为止尝试过什么?谷歌它可以找到很多解决方案。 – 2013-02-20 11:59:40

请使用iTextSharp的这一点。

有不同的库来完成这个

1. iTextSharp

2. PDFSharp

3. SharpPDF

希望这有助于

如何导出数据为PDF格式的? 下面的代码是用于出口网格视图的数据为PDF格式

public void ExportToPdf(DataTable ExDataTable) //Datatable 
    { 
    //Here set page size as A4 

    Document pdfDoc = new Document(PageSize.A4, 10, 10, 10, 10); 

    try 
    { 
     PdfWriter.GetInstance(pdfDoc, System.Web.HttpContext.Current.Response.OutputStream); 
     pdfDoc.Open(); 

     //Set Font Properties for PDF File 
     Font fnt = FontFactory.GetFont("Times New Roman", 12); 
     DataTable dt = ExDataTable; 

     if (dt != null) 
     { 

      PdfPTable PdfTable = new PdfPTable(dt.Columns.Count); 
      PdfPCell PdfPCell = null; 

      //Here we create PDF file tables 

      for (int rows = 0; rows < dt.Rows.Count; rows++) 
      { 
       if (rows == 0) 
       { 
        for (int column = 0; column < dt.Columns.Count; column++) 
        { 
         PdfPCell = new PdfPCell(new Phrase(new Chunk(dt.Columns[column].ColumnName.ToString(), fnt))); 
         PdfTable.AddCell(PdfPCell); 
        } 
       } 
       for (int column = 0; column < dt.Columns.Count; column++) 
       { 
        PdfPCell = new PdfPCell(new Phrase(new Chunk(dt.Rows[rows][column].ToString(), fnt))); 
        PdfTable.AddCell(PdfPCell); 
       } 
      } 

      // Finally Add pdf table to the document 
      pdfDoc.Add(PdfTable); 
     } 

     pdfDoc.Close(); 

     Response.ContentType = "application/pdf"; 

     //Set default file Name as current datetime 
     Response.AddHeader("content-disposition", "attachment; filename=" + DateTime.Now.ToString("yyyyMMdd") + ".pdf"); 

     System.Web.HttpContext.Current.Response.Write(pdfDoc); 

     Response.Flush(); 
     Response.End(); 

    } 
    catch (Exception ex) 
    { 
     Response.Write(ex.ToString()); 
    } 
}