2009-08-15 8 views

답변

11

PDF 형식이 너무 풍부하기 때문에 가능하지만 반드시 쉬운 것은 아닙니다. 자세한 내용은 here에 설명 된 문서를 참조하십시오. 이 PDF 파일의 표시 텍스트가 얼마나 대해주는 첫 번째 초등 예 :

BT 
/F13 12 Tf 
288 720 Td 
(ABC) Tj 
ET 

BT 및 ET 시작하고 텍스트 개체를 종료하는 명령입니다; Tf는 크기 12에서 외부 글꼴 자원 F13 (Helvetica 일 수 있음)을 사용하는 명령입니다. Td는 주어진 좌표에 커서를 위치시키는 명령입니다. Tj는 이전 문자열에 대한 글리프를 작성하는 명령입니다. 이 맛은 다소 "역 폴란드어 표기법"입니다. Adobe의 조판에 대한 다른 큰 공헌 중 하나 인 Postscript의 풍미와 매우 비슷합니다.

문제는 PDF 사양에 "보이는"텍스트가 표시된 페이지에 함께 속해 있다는 사실은 실제로 "함께 있어야"한다는 것입니다. 정밀한 좌표가 항상 주어질 수 있기 때문에 PDF가 정교한 인쇄 체계 레이아웃 시스템에 의해 생성되는 경우 좌표에 따라 정확하게 문자를 배치 할 수 있습니다. 그러므로 단어와 문장의 형태로 텍스트를 재구성하는 것은 반드시 쉬운 일은 아닙니다. 광학 문자 인식만큼이나 어렵습니다. 단, 문자를 정확히 입력해야한다는 것만은 사실입니다. ... ;-).

pyPdf은 매우 단순한 순수 Python 라이브러리로서 PDF 파일로 재생하기에 좋은 출발점입니다. "텍스트 추출"기능은 아주 초보적이며 몇 가지 텍스트 그리기 명령의 인수를 연결하기 만합니다. 당신은 어떤 문서에서 충분하다는 것을 알게 될 것이고, 다른 사람들에게는 그다지 쓸모가 없지만 적어도 시작일 것입니다. 분산 형으로, pyPdf는 색상에 관해서는 아무것도하지 않지만 해킹으로 해결할 수 있습니다.

reportlab의 강력한 파이썬 라이브러리는 기존 PDF 파일을 해석하거나 수정하는 것이 아니라 새로운 PDF를 생성하는 데 전적으로 중점을 둡니다. 다른 극단에서는 pure Python 라이브러리 pdfminer이 완전히 PDF 파일을 구문 분석하는 데 중점을 둡니다. 더 단순한 라이브러리가 뒤죽박죽 인 경우 텍스트를 재구성하기 위해 클러스터링을 수행합니다.

원하는 변형 작업을 수행하는 기존 라이브러리에 대해 알지 못하지만 대부분의 작업을 완료하기 위해 이러한 기존의 라이브러리 중 일부를 혼합하고 일치시켜야합니다 ... 행운을 빈다.

+0

하나의 pdf를 읽으려고 시도했지만 문자와 스트림을 읽었으므로 PDF와 EOF를 인식 할 수 있으며 많은 특수 문자가 있습니다. 특정 인코딩이 있습니까? BT와 ET 검색을위한 간단한 코드를 공유해주십시오. http://stackoverflow.com/questions/12982188/how-to-access-lines-in-a-pdf-page-programmatically에서 동일한 질문을했습니다. - and-them-different-color, 감사합니다. – Shan

0

PDF 주석을 사용하여 pdf 파일에서 강조 표시가 가능하지만 기본적으로 그렇게하는 것이 쉬운 일은 아닙니다. 언급 된 도서관 중 어느 곳에서나 이러한 시설을 제공하는 경우 귀하가 찾을 수있는 어떤 것입니다.

관련 문제