2012-12-18 48 views
9

Tôi có thể lấy mã để chuyển đổi dữ liệu thành pdf trong ứng dụng Web Asp.net hay không. Tôi muốn có chức năng xuất datatable thành PDF. Tôi đã tìm thấy this bài viết nhưng nó đang sử dụng gridview để xuấtChuyển đổi dữ liệu có thể định dạng thành PDF

+0

vì vậy vấn đề với GridView là gì. bạn không cần hiển thị chế độ xem lưới trong trang của mình. chỉ cần tạo định dạng bảng HTML cho dữ liệu pdf của bạn .. –

+0

Tôi không hiển thị chế độ xem lưới trên trang –

+1

Tôi cũng nói rằng dữ liệu của bạn sẽ không hiển thị trong chế độ xem lưới. nó; s chỉ mất từ ​​tạo ra xem html để tạo pdf. Hoặc là bạn có thể đi với iTextSharp nhưng bạn cần phải nỗ lực nhiều để thực hiện việc này. –

Trả lời

25

Sử dụng iTextSharp, bạn có thể làm điều đó. Nó có thể được tải xuống từ internet và hoàn toàn miễn phí. Xin vui lòng, tìm mã dưới đây,

public void ExportToPdf(DataTable dt) 
    {  
    Document document = new Document(); 
    PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("c://sample.pdf", FileMode.Create)); 
    document.Open(); 
      iTextSharp.text.Font font5 = iTextSharp.text.FontFactory.GetFont(FontFactory.HELVETICA, 5); 

    PdfPTable table = new PdfPTable(dt.Columns.Count); 
    PdfPRow row = null; 
    float[] widths = new float[] { 4f, 4f, 4f, 4f }; 

    table.SetWidths(widths); 

    table.WidthPercentage = 100; 
    int iCol = 0; 
    string colname = ""; 
    PdfPCell cell = new PdfPCell(new Phrase("Products")); 

    cell.Colspan = dt.Columns.Count; 

    foreach (DataColumn c in dt.Columns) 
    { 

     table.AddCell(new Phrase(c.ColumnName, font5)); 
    } 

    foreach (DataRow r in dt.Rows) 
    { 
     if (dt.Rows.Count > 0) 
     { 
      table.AddCell(new Phrase(r[0].ToString(), font5)); 
      table.AddCell(new Phrase(r[1].ToString(), font5)); 
      table.AddCell(new Phrase(r[2].ToString(), font5)); 
      table.AddCell(new Phrase(r[3].ToString(), font5)); 
     }   
    } document.Add(table); 
     document.Close(); 
} 
+0

đẹp nhất. cảm ơn. – Sagotharan

+0

datatable là ném một lỗi. Có bất kỳ xung đột với loại datatable –

5

Bạn có thể không phải là "chuyển đổi " một DataTable vào một tài liệu PDF. Nhưng bạn có thể chèn dữ liệu vào đó làm nội dung bình thường.

Điều này sẽ phải được thực hiện thông qua điều khiển dữ liệu, như GridView hoặc ListView; giống như trong một trang web bình thường. Đó là lý do tại sao số article bạn đã liên kết với điều đó. GridView có lẽ là cách gần nhất và dễ nhất để làm cho nó về mặt thẩm mỹ xuất hiện giống như một DataTable. Vì nó sẽ chỉ được lưu trữ như một bảng bình thường trong Tài liệu PDF.

Lưu ý rằng GridView được tạo trong bộ nhớ - bạn không tạo hoặc cần phải có một trang trong trang HTML của mình. Hãy thử và thử nghiệm với mã để hiểu điều này tốt hơn.

Vì vậy, tôi khuyên bạn nên theo dõi article.

+0

+1 Đối với thông tin tốt –

Các vấn đề liên quan