2017-11-27 9 views
-2

3 페이지를 넘을 수있는 테이블이 있습니다. 그러나 각 페이지에 10 개의 행만 넣기를 원합니다. 10 줄마다 페이지 나누기를 추가 할 수 있습니까? 나는 카운트를 추가하려고 시도하고 매 10 행마다 페이지 나누기를 삽입하지만 페이지 나누기는 테이블의 맨 위로 이동하므로 테이블은 두 번째 페이지에서 시작됩니다. 코드 아래iTextsharp 테이블의 10 개 행마다 페이지 나누기 삽입

 DataSet dsTable = null; 
     dsTable = DataUtils.GetTableProperties(CompNew.CompanyID, "InvoicePrint"); 

     iTextSharp.text.pdf.PdfPTable table = new PdfPTable(dsTable.Tables[1].Rows.Count); 
     table.WidthPercentage = 100; 

      int count = 0; 
      foreach (DataRow record in records.Tables[0].Rows) 
      { 
       foreach (string Heading in Headings) 
       { 
        table.AddCell(new Paragraph(record[Heading].ToString(), arialBold)); 
       } 
       if (count != 0) 
       { 
        if ((count % 10) == 0) 
        { 
         document.NewPage(); 
        } 
       } 
       count++; 

      } 

    paragraphTable1.Add(table); 
    document.Add(paragraphTable1); 
+0

내가 대답을 만들기 시작했다,하지만 난 당신의 질문에 추가하지 마십시오 너무 많은 것들을 있기 때문에 중단했다; 그래서 나는 당신의 질문에 대해 아래로 투표를 끝내었다. 예를 들면 :'dsTable'은 무엇입니까? 당신은'PdfPTable' (행의 수를 사용하여 ???)의 열 수를 결정할 때만 이것을 사용합니다. 'records'를 반복하지만 표제 만 추가합니까? 실제 콘텐츠를 어디에 추가합니까? 또한, 실제 문제는 무엇입니까? 10 행이 페이지 크기를 초과하면 어떻게 될까요? 행이 분할되지 않도록 속성을 설정하지 않겠습니까? iText 7을 사용하지 않는 이유는 무엇입니까? 이 프로젝트는 현재 진행중인 레거시 프로젝트입니까? –

+0

가장 좋은 대답은 다음과 같을 것이라고 생각합니다. 페이지의 행 수를 걱정하지 마십시오. 행이 분할되지 않도록하십시오. 그것은 분명하지 않습니다 * 왜 * 모든 페이지에 10 행을 갖고 싶어. 당신이 우리에게주는 이유는 더 우아한 해결책을 가지고있는 문제에 대한 나쁜 해결 방법 인 것처럼 들립니다. –

답변

1

시도

 if ((count % 10) == 0) 
     { 
     paragraphTable1.Add(table); 
     document.Add(paragraphTable1); 
     document.NewPage(); 
     } 
+0

직접 해 보셨습니까? 어떻게 그리고 왜 이것이 효과가 있을지 이해하지 못합니다. (그리고 나는 원래 iText를 개발 한 사람이기 때문에 이해해야한다.하지만 그렇지 않다.) –