2013-03-07 2 views
1

iText를 사용하여 채우기 필드를 PdfPTable에 삽입하는 방법을 생각해 보았습니다. 책을 읽고 인터넷 검색을 통해 직접 내용을 통해 필드를 추가해야한다는 것을 알았습니다. 필자가 만든 테이블의 특정 셀에 필드를 추가해야 할 때 셀 이벤트를 사용해야했습니다.테이블에 채우기 필드 삽입 [iText]

내 이해를 돕기 위해 PdfPCellEvent가 우리에게 테이블 셀의 정확한 위치를 제공하는 Rectangle을 제공했기 때문에 누군가가이 방법으로 그 이유를 확인할 수 있었으면 좋겠다.

사과가 매우 분명한 것처럼 보입니다. Java 지식은 구조화 된 방식으로 학습하지 않고 특정 요구 사항을 처리하여 구축되었으므로 일부 기본 개념이 누락되었을 수 있습니다.

답변

1

PdfPTable/PdfPCell은 PDF의 내용 스트림에 선과 텍스트를 그립니다.

필드는 콘텐츠 스트림에 속해 있지 않습니다. 필드는 위젯 주석으로 페이지에서 시각화 할 수있는 추상 개념입니다. 어노테이션은 컨텐츠 스트림의 일부가 아닙니다. 페이지 사전에서 참조하는 PDF 사전에 저장됩니다 (페이지의 콘텐츠 스트림에있는 것과는 대조적 임). 이러한 사전은 주석의 좌표를 포함합니다.

그래서 셀 이벤트를 사용하여 테이블에 필드를 추가해야합니다. iText는 테이블을 페이지에 추가 할 때 컨텐츠 스트림을 생성합니다. iText는 렌더링이 완료 될 때까지 모든 줄과 텍스트 조각의 좌표를 알지 못합니다. 테이블과 셀 이벤트가 트리거됩니다. 이벤트에 전달 된 좌표를 사용하여 주석을 작성할 수 있습니다.

+0

게시 해 주셔서 감사합니다. iText 감사합니다! 나는 그 일을 올바르게 이해함으로써 정의를 원한다! –