2013-04-02 11 views
1

pdf를 csv 파일로 변환하려고합니다. pdf 파일에는 첫 번째 행을 헤더로 갖는 표 형식의 데이터가 있습니다. 필자는 셀에서 텍스트를 추출하고 테이블의 텍스트 기준을 비교하여 줄 바꿈을 검색 할 수있는 수준에 도달했지만 테이블 시작을 감지하기 위해 표 테두리를 비교해야합니다. 필자는 PDF에서 줄을 찾고 비교하는 방법을 모르겠습니다. 누구든지 나를 도울 수 있습니까?itextSharp에서 테이블 시작을 감지하는 방법?

감사합니다 !!!

답변

4

잘 보셨 듯이 PDF에는 테이블 개념이 없으며 특정 위치에 텍스트가 그려져 있고 그 주위에 그려진 선이 있습니다. 텍스트와 행 사이에는 내부 관계가 없습니다. 이것은 이해하는 것이 매우 중요합니다.

모든 셀에 충분한 여백이 있으면 3 자 이상의 너비와 같이 충분히 큰 문자 사이의 간격을 찾을 수 있습니다. 세포가 충분한 간격을 가지지 않으면 불행하게도 파열 될 것입니다.

PDF의 모든 줄을보고 "표와 유사한"줄을 나타내는 것을 파악할 수도 있습니다. 그려지는 내용을 보려면 this answer for how to walk every token on a page을 참조하십시오.

+0

+1; 나는 일반적인 설명에 동의한다. 페이지 내용을 검사하는 방법에 관해서는 페이지 내용을 수동으로 검사하는 대신 iText 파서 패키지를 사용하도록 제안합니다. – mkl

+0

iText에 도형이나 선의 파서가 있습니까? –

+0

아직은 아니지만 파서 패키지 클래스는 경로에 대한 정보를 제공하기 위해 확장하기에 충분히 쉽습니다. 그러나 파서 클래스는 RenderListener에 대한 텍스트 너비와 위치에 대한 매우 정확한 정보를 제공합니다. 동일한 정보를 수동으로 검색하려면 가능한 일부 연산자를 고려해야합니다. – mkl