2013-02-25 5 views
0

주어진 절대 위치에있는 Rectangle에 대해 하나의 열 PdfPTable을 생성합니다. 이 표에서 필자는 PdfPCell 컬렉션을 추가하고 가능한 한 많은 셀 내용을 표시해야하며 셀은 테이블 사각형 경계에서 잘려야합니다. 나는 각 셀의 문구 개체가 나는 테이블에 세포의 집합을 추가iText를 사용하여 PdfPTable에서 셀을 클립하는 방법은 무엇입니까?

PdfPTable cutTable = new PdfPTable(1); 
    cutTable.setTotalWidth(200f); 
    cutTable.setLockedWidth(true); 

: 나는에 의해 폭의 처리했다. 문제는 셀이 테이블 높이 경계를 오버 플로우하고 클리핑되지 않는다는 것입니다. 각 셀을 추가 한 후 전체 셀의 높이를 추적하려고 시도했지만 문제는 행 높이에 대한 테이블을 요청하기 때문에 셀을 먼저 삽입해야하고 마지막 셀이 오버 플로우 될 때 계산이 중단되어야한다는 것입니다.

표에서 셀 내용을 경계에서 잘라내려면 어떻게해야합니까? 이 작업을 수행 할 수 없으면 테이블에 추가되기 전에 기본 텍스트 배치가있는 셀 높이 (Arial 8 글꼴 사용)를 어떻게 결정합니까?

미리 도움을 주셔서 감사합니다.

답변

0

내 책 "iText in Action"의 CellHeights 예를 살펴보십시오. 다양한 옵션을 사용하여 셀 높이를 설정합니다. 제 생각에는 setFixedHeight() 방법이 필요합니다. 이 방법을 사용하면 높이에 맞지 않는 셀에 추가 된 모든 콘텐츠가 삭제됩니다.

+0

감사합니다. Bruno. 나는 너의 멋진 책을 가지고 있고 4 장을 여러 번 읽는다. 내가 찾고있는 것은 table.addCell (cell)을 호출하기 전에 래핑 된 텍스트가있는 셀의 높이를 결정하는 방법입니다. 절대 너비와 높이로 테이블을 만들었습니다. 삽입 할 셀의 행이 많지만 표 직사각형의 경계까지 삽입하고 싶습니다. 고정 셀 높이를 설정하면 모든 행의 높이가 고정되어있을 때 작동합니다. 그러나 셀 안에 줄 바꿈 텍스트가있을 때 셀을 추가하기 전에 높이를 결정하면 마지막으로 추가 된 셀이 아래쪽 테이블 경계에서 오버플로되지 않습니다. – Kathy

+0

나는 당신이 무엇을하려고하는지 이해하지 못한다고 생각하지만, 나는 알고있다. 1. 테이블이 셀의 크기를 결정하기 때문에 셀을 테이블에 추가하기 전에 얼마나 많은 공간을 가져야하는지 iText에게 물어볼 수 없다. 세포. 2. 내용의 소요량을 알고 싶다면 ColumnText 개체를 사용하여 내용을 확인할 수 있습니다. PdfTemplate을 사용하여 열을 렌더링하는 경우 PdfTemplate을 다시 사용하여 셀을 만들 수 있습니다. 어쩌면 그것은 해결책이지만, 내가 말했듯이 : 나는 그 질문을 이해할 지 모르겠습니다. –

+0

다양한 높이의 다중 열 테이블을 만들어야했습니다. 문제는 내가 텍스트를 감싸고 셀을 삽입 할 때 테이블 경계로 잘리지 않는다는 것입니다. 따라서 경계 사각형 위에 셀이 넘치거나 출혈하는 것을 시각적으로 볼 수 있습니다. 나는 셀을 추가 한 후 셀 높이를 추적하여이 문제를 해결했습니다. 총 셀 높이가 테이블 높이보다 큰 경우 이전에 추가 한 셀을 제거하고 셀 삽입을 중단했습니다. 이 솔루션은 작동하지만 PdfPTable, dimension과 llx, lly를 사용하여 사각형 영역을 클립 할 수 있기를 바랬다. 감사. – Kathy

관련 문제