2013-06-03 15 views
0

2 페이지가 포함 된 PDF 파일이 있습니다. Ojective-C에서 파서와 구문 분석을하면 다음과 같은 상황이 발생합니다.PDF를 파싱하면 다른 페이지에서 동일한 텍스트가 두 번 표시됩니다.

첫 번째 페이지의 모든 부분이 정상적으로 작동합니다. 미리보기, Adobe Reader 등의 PDF 리더에서 시각적으로 볼 수있는 텍스트가 있습니다. 두 번째 페이지의 경우 두 번째 페이지에있는 텍스트에 첫 번째 페이지의 텍스트 일부가 더해져 두 번째 페이지에 없습니다.

다른 파서를 사용해 보았습니다. pdftotext (xpdf) 그들은 올바른 결과를 얻을 수있었습니다. Pdfminer (파이썬에서) https://pypi.python.org/pypi/pdfminer/, 나는 내가 가진 것과 같은 결과를 얻었다. 첫 번째 페이지의 텍스트 부분이 두 번 추출됩니다.

내 질문은 어떻게 될 수 있습니까? 이 상황을 본 적이 있습니까? 텍스트가 실제로 두 번째 페이지에 있다면, 왜 PDF 독자는 그것을 보여주지 않습니까? 이것에 대한 생각이 있습니까?

+0

아마도 텍스트가 페이지에 있지만 표시되지 않을 수 있습니다. "Crop Box"라고하는 것, "OCG"라고하는 것 ... 아마 흰색 텍스트가 흰색 일 수 있습니다. 실제 PDF를 보지 않고도 추측 할 수는 있지만 가능한 많은 이유가 있습니다. –

+0

Illustrator 및 Acrobat Pro에서 파일을 열려고했지만 아무 것도 보지 못했습니다. 나는 또한 두 번째 페이지에서 텍스트를 선택하려고 시도했지만, 우리가 볼 수있는 텍스트 이상의 것은 아닙니다. 의견을 보내 주셔서 감사합니다. 더 많은 아이디어를 환영합니다. – bob

+0

필자는 PDF 레퍼런스를 한 번 보았습니다. 1.4 PDF와 옵션 컨텐츠는 v. 1.5에서만 시작하기 때문에 내 PDF에는 OCG가 없습니다. 내 문서 카탈로그 사전을 확인했지만 OCProperties 항목이 없습니다. – bob

답변

2

"문서 검사"를 사용하여 파일을 Acrobat에서 실행했으며 숨겨진 텍스트가 있음을 알려줍니다. 다음 스크린 샷에서보세요 :

enter image description here

스크린 샷에서 빨간색의 텍스트가 숨겨져 것을 표시합니다. mkl이 나타내는 것처럼 MediaBox 바깥쪽에 존재하므로 PDF 뷰어에서 문서를 볼 때 보이지 않게됩니다. 그렇다고 텍스트가 있음을 의미하지는 않습니다. 콘텐츠 스트림 (파서가하는 것)을 들여다 보면 여전히 찾을 수 있습니다.

파서는 MediaBox 외부의 모든 것을 폐기해야합니다. 일반적으로 그렇게 할 수있는 옵션이 있습니다. 나는 iText에 하나 있다는 것을 알고있다. 나는 다른 파서에 대해서 모른다.