2012-12-18 2 views
9

Asp.net 웹 응용 프로그램에서 datatable을 pdf로 변환하는 코드를 얻을 수 있습니까? datatablePDF으로 내보내는 기능을 갖고 싶습니다. this 문서를 찾았지만 수출용으로는 gridview을 사용하고 있습니다.Datatable을 PDF로 변환

+0

그래서 gridview의 문제점은 무엇입니까? 당신은 당신의 페이지에 gridview를 보여줄 필요가 없습니다. PDF 형식의 데이터를 HTML 형식으로 표기하는 것입니다. –

+0

페이지에 표보기가 표시되지 않습니다. –

+1

표의 데이터가 gridview에 표시되지 않습니다. 그것은, 그냥 PDF 생성을위한 HTML보기 생성에서 가져 가라. iTextSharp로 갈 수 있지만, 이것을하기 위해 많은 노력을 기울일 필요가 있습니다. –

답변

25

iTextSharp를 사용하면 할 수 있습니다. 인터넷에서 다운로드 할 수 있으며 무료입니다. , 아래의 코드를 찾아주세요,

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

멋진 패키지입니다. 감사. – Sagotharan

+0

datatable이 오류를 발생합니다. 데이터 형식이 –

5

당신은 아닌 DataTable에 PDF 문서 " 변환"할 수 있습니다. 그러나 데이터를 정상적인 내용으로 삽입 할 수 있습니다.

GridView 또는 ListView과 같은 데이터 컨트롤을 통해 처리해야합니다. 마치 일반 웹 페이지 에서처럼. 그래서 당신이 연결된 article이 그렇게합니다. GridView은 아마 미적으로는 DataTable과 같은 것처럼 보이게하는 가장 쉽고 가장 쉬운 방법 일 것입니다. 그대로 PDF 문서의 일반 테이블로 저장됩니다.

GridView은 메모리에 만들어 지므로 HTML 페이지를 만들거나 HTML 페이지에 만들 필요가 없습니다. 이 코드를 더 잘 이해하려고 시도해보십시오.

따라서 article을 따르는 것이 좋습니다.

+0

+1 인 경우 충돌이 발생합니다. –