세로형
Recent Posts
Recent Comments
Link
04-26 00:00
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

파이썬 pdf 파일 읽기(pdfminer 설치) 설치부터 예제까지 본문

python

파이썬 pdf 파일 읽기(pdfminer 설치) 설치부터 예제까지

이수진의 블로그 2018. 2. 14. 11:37


프로그램을 하다 보면 파일 입출력 뿐 아니라 

pdf 파일, 워드 파일 등을 읽을 필요성이 있습니다

워드 파일은 굳이 아직 따로 찾아보질 않아서 모르겠네요

아마 있는 걸로 알고 있습니다


그리고 당연히 파이썬에서도 PDF 파일을 읽는 방법이 있습니다

pdfminer를 이용하면 되는데요


pdf 파일을 읽는 방법 설치부터 예제까지 살펴보죠!


파이썬 pdf 연동 방법에 대해 설치 방법을 구글에 치면 다양한 방법이 나오는데요

뭐가 다 제대로 되질 않더라구요

설치가 되질 않거나, 설치가 되어도 예제가 되질 않거나..


패키지만 한 3~4개 설치한 것 같은데 다 안됐습니다..

근데 이 방법 하니까 pdf 파일을 읽을 수 있었습니다




pdfminer 를 설치하는데요

그냥 pip3 install pdfminer를 입력하면 되질 않습니다.

근데 pip3 install pdfminer.six 라고 치면 됩니다


버전? 인 것 같기도하고요


아무튼 설치합니다. 그러면 잘 되실거에요


그리고 아래와 같은 소스를 입력해봅니다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO
 
def convert_pdf_to_txt():
#pdf리소스 매니저 객체 생성
    rsrcmgr = PDFResourceManager()
#문자열 데이터를 파일처럼 처리하는 stringio -> pdf 파일 내용이 여기 담김
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = open('1.pdf''rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 0
    caching = True
    pagenos=set()
 
    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)
  #text에 결과가 담김
    text = retstr.getvalue()
 
    fp.close()
    device.close()
    retstr.close()
    return text
 
= convert_pdf_to_txt()
print(v)

cs



아마 중간 중간 소스가 필요 없는 것이 있을거에요

저도 일단 긁어와서 사용한 것이라서 잘 모르겠네요


대략적인 방법은 이런 것 같았습니다

PDF를 읽는 매니저를 가지고 옵니다.

그리고 문자열을 파일 처럼 처리하는 stringio를 이용합니다. 이것을 이용해서 pdf 내용을 담아둡니다.


좀 더 공부를 해야겠네요

세부적인 것은 이해가 잘 안되네요


일단 되는지 안되는지 보죠!


저는 1.pdf 파일을 기준으로 진행하는데요





1.pdf 내용은 위와 같습니다

테스트라서 그냥 아무렇게나 썼습니다

저 프로그램을 실행하면!





이렇게 출력이 됩니다


기능적인 것은 되는군요

소스 내용이 이해가 안가서 그렇지 ㅠㅠ

반응형
그리드형
Comments