Coding/Python Matlab

PDF 파일에서 텍스트 추출 - slate

smores 2016. 9. 1. 04:26

스마트폰의 ebook reader 들을 이용해서 책이나 인터넷에서 갈무리한 글을 읽기를 즐기는 편이다. 텍스트 파일의 경우는 GoodReader 를 오랜기간 사용해 왔다.


간혹 영문 소설을 인터넷에서 PDF 로 받아오는 경우 현재 사용하고 있는 iPhone4s 3.5인치의 작은 화면에서는 글자가 작아서 읽기가 무척 불편하다. 그렇다고 글자가 잘 보일 만큼 확대해 놓고 페이지를 왔다 갔다 스크롤 하는 것도 무척 불편하다. 때문에 소설 같은 것은 그냥 텍스트만 추출해서 텍스트파일로 바꾸어서 읽으면 싶을 때가 많다.


오랫만에 Python 으로 이런 일을 할 수 있을 것 같아서 인터넷을 조금 찾아보니 쉽게 답이 나온다. Slate 라는 모듈.


https://pypi.python.org/pypi/slate


리눅스 가상머신에서 웹브라우저로 위의 페이지를 방문, 하단의 링크를 따라 github 로 가서 zip 파일을 다운받아 푼 후  $ sudo python setup.py install 로 간단히 인스톨.


원하는 PDF 파일을 넣어 놓은 디렉토리에 터미널을 열고 


>>> import slate

>>> with open(pdf_file_name) as f:

...   doc = slate.PDF(f)

...

>>> f=open(txt_file_name, "wt")

>>> for s in doc:

...   f.write(s)

...

>>> f.close()



로 간단히 텍스트 파일로 변환이 된다. 줄들이 다 끊기기는 하지만 별 상관 안하는 편이고, 나의 경우 직접 만들어 둔 Excel VBA 스크립트 코드로 간단히 줄 이음 등을 바꿀 수 있기에 원하면 간단한 추가 처리로 포맷도 변환 가능하다. 이렇게 변환한 파일은 GoodReader 에 넣어두면 시간날때 조금씩 읽을 수 있어서 좋다.