2014-03-28 1 views
1

ITextSharp로 PDF를 생성 중입니다. PDF 문서에 HTML 테이블을 생성하고 있지만 PDF 파일에 올바르게 표시되지 않습니다. 내가 생성 된 HTML을 복사하여 HTML 파일 체크 한 자사의 HTML 파일에 올바르게 표시IText sharp PDF Writer가 HTML을 올바르게 표시하지 않습니다.

이이 내가 PDF 파일에서 무엇입니까되는 HTML 파일 This is my HTML in an HTML file

내 HTML은 enter image description here

이 현재 항목이있는 경우 내가 foreach 루프 내에서 확인할 수있는 방법, 날짜에서만 년도와 월을 표시 할 내 코드

var data = MyClass.GetHistory();//It returns a Data Table 
      var stream = new MemoryStream(); 
      Document document = new Document(PageSize.A4, 50, 50, 25, 25); 
      PdfWriter writer = PdfWriter.GetInstance(document, stream); 
      document.Open(); 

StringBuilder sb = new StringBuilder(); 
       sb.Append("<table style=\"border-collapse: collapse; border-spacing: 0; width: 100%; margin-bottom: 15px; border: 1px solid #dddddd; font-family: Arial, Helvetica, sans-serif; font-size:14px\">"); 
       sb.Append("<thead>"); 
       sb.Append("<tr>" + title + "</tr"); 
       sb.Append("<tr>"); 
       sb.Append(" <th style=\"padding: 8px; line-height: 1.428571429; vertical-align: top; border-top: 1px solid #dddddd; border: 1px solid #dddddd; border-bottom: 2px solid #dddddd; background:#DCEBFD; text-align:left;\">Date</th>"); 
       sb.Append(" <th style=\"padding: 8px; line-height: 1.428571429; vertical-align: top; border-top: 1px solid #dddddd; border: 1px solid #dddddd; border-bottom: 2px solid #dddddd; background:#DCEBFD; text-align:left;\">Description</th>"); 
       sb.Append(" <th style=\"padding: 8px; line-height: 1.428571429; vertical-align: top; border-top: 1px solid #dddddd; border: 1px solid #dddddd; border-bottom: 2px solid #dddddd; background:#DCEBFD; text-align:left;\">City</th>"); 
       sb.Append(" <th style=\"padding: 8px; line-height: 1.428571429; vertical-align: top; border-top: 1px solid #dddddd; border: 1px solid #dddddd; border-bottom: 2px solid #dddddd; background:#DCEBFD; text-align:left;\">State</th>"); 
       sb.Append(" </tr>"); 
       sb.Append(" </thead>"); 
       sb.Append(" <tbody>"); 

       foreach (var rows in data.Rows) 
       { 
        sb.Append("<tr>"); 
        foreach (var item in ((System.Data.DataRow)(rows)).ItemArray) 
        { 
         sb.Append("<td style=\"padding: 8px; line-height: 1.428571429; vertical-align: top; border-top: 1px solid #dddddd; border: 1px solid #dddddd; width: 125px\">" + item + "</td>"); 
        } 
        sb.Append("</tr>"); 
       } 

       //sb.Append("<td>1</td><td>2</td><td>3</td><td>4</td><td>5</td>"); 

       //sb.Append(" <tr><td>This is a test</td><td>2/td><td>3</td><td>4</td><td>5</td><tr/>"); 
       //sb.Append(" <tr><td>This is a test</td><td>This is a test</td><td>This is a test</td><td>This is a test</td><td>This is a test</td><tr/>"); 
       sb.Append(" </tbody>"); 
       sb.Append(" </table>"); 

두 번째입니다 날짜 시간?

+0

당신의'sb' 변수에서 생성 된 HTML을 볼 필요가 있습니다 –

+0

왜 itext를 사용하여 PDF를 생성하기 위해 html 코딩을 직접하고 있습니까? PDFPTable 클래스 등을 사용하면 어떨까요? – Paddy

+0

@AnantDabhi 나는 그것을 게시하고있다. 그러나 너무 큰 질문을 할 것이다. –

답변

0

이 경우 iTextSharp.text.pdf.PdfPTable 개체를 사용하시기 바랍니다. html 테이블은 더 단순한 것으로 보이며 iTextSharp.text.pdf.PdfPTable을 사용하면 더 빨리 원하는 것을 얻을 수 있습니다.

+0

에 오신 것을 환영합니다 StackOverflow, 네온. 이 대답은 제안 된 클래스를 사용하기위한 샘플 코드와 함께있을 수있는 문서 나 예제에 대한 링크를 포함시킴으로써 향상 될 것입니다. –