2013-07-05 2 views
0

iTextPdf 5.4.1을 사용하고 있습니다. 많은 행이있는 표가 있는데, 표가 다음 페이지로 자동 분리 될 때 표 삽입을 계속하려면 이미지를 삽입 한 다음 다른 페이지 나누기를 삽입하고 싶습니다.itextpdf : 테이블 분할시 새 페이지를 삽입하는 방법?

예를 들어, 테이블이 가지고있는 행의 수를 기준으로 2 페이지를 차지합니다.

최종 출력은 다음과 같아야 화상
페이지 3 : 나머지 테이블 행
페이지 1 : 첫 페이지
2 페이지 맞는 테이블 행.

그래서 테이블이 분할 될 때마다 이미지를 삽입하고 페이지 나누기를 삽입하려고합니다.

나는 다음과 같이 PdfPTableEventSplit 인터페이스를 사용하려고 해요 :

public class TableSplitEvent implements PdfPTableEventSplit 
{ 
    private Image pageImage; 
    private Document pdfDoc; 

    public TableSplitEvent(Image pageImage, Document pdfDoc) 
    { 
     super(); 
     this.pageImage = pageImage; 
     this.pdfDoc = pdfDoc; 
    } 

    @Override 
    public void splitTable(PdfPTable table) 
    { 
     try 
     { 
     pdfDoc.add(pageImage); 
     pdfDoc.newPage(); 
     } 
     catch (DocumentException e) 
     { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     } 
    } 

    @Override 
    public void tableLayout(PdfPTable table, float[][] widths, float[] heights, int headerRows, int rowStart, 
          PdfContentByte[] canvases) 
    { 
    } 

} 

을 그러나 이벤트가 테이블이 렌더링 된 후에 호출되는 것으로 작동하지 않는, 그리고 그것을 기록하기 전에 pdf에.

나는군요 :
페이지 1 : 이미지
2 페이지 : 테이블 행
3 페이지의 : 테이블 행

사람이이 작업을 수행하는 방법을 알고 있나요을?

+0

@P Sheldon이 해결책을 찾았습니까 ?? –

+0

예, 우리는 PdfPTableEventAfterSplit 클래스를 포함하는 itext5.4.3으로 업그레이드했습니다. –

답변

0

내가 실수하지 않은 경우 PdfPTableEventAfterSplit 이벤트에 대한 코드 제공이 접수되었습니다. 그것은 2 주 안에 iText에 통합 될 것이고 7 월말에 발표 될 것입니다. 이 날짜 이전에는 iText가 사용자의 요구를 충족시킬 수 없습니다. 양해 해 주셔서 감사합니다.

+0

트렁크와 5.4.2 브랜치에서 itext 소스 코드를 살펴 봤는데 그 클래스가 보이지 않습니다. 이것은 다음 릴리스가 나올 때까지 내가 미리 얻을 수 있고 코드에 통합 할 수있는 것입니까? –

+0

아직 지점에 없습니다. iText에서 1 ~ 2 주 만에 통합 될 예정인 코드입니다. –

+0

감사합니다. 나는 그것을 계속 주시 할 것이다. –

관련 문제