이것은 Python3에서 PDFminer 6을 사용하여 2020 년 5 월에 작동합니다.
패키지 설치
$ pip install pdfminer.six
패키지 가져 오기
from pdfminer.high_level import extract_text
디스크에 저장된 PDF 사용
text = extract_text('report.pdf')
또는 :
with open('report.pdf','rb') as f:
text = extract_text(open('report.pdf','rb'))
이미 메모리에있는 PDF 사용
PDF가 이미 메모리에있는 경우 (예 : 요청 라이브러리를 사용하여 웹에서 검색 한 경우) 라이브러리를 사용하여 스트림으로 변환 할 수 있습니다 io
.
import io
response = requests.get(url)
text = extract_text(io.BytesIO(response.content))
PyPDF2와 비교 한 성능 및 신뢰성
PDFminer.six는 PyPDF2 (특정 유형의 PDF에서는 실패 함), 특히 PDF 버전 1.7보다 더 안정적으로 작동합니다.
그러나 PDFminer.six를 사용한 텍스트 추출은 PyPDF2보다 6 배 더 느립니다.
timeit
15 "MBP (2018)에서 텍스트 추출 시간을 지정 하고 10 페이지 PDF로 추출 기능 (파일 열기 없음 등) 만 시간을 지정하고 다음과 같은 결과를 얻었습니다.
PDFminer.six: 2.88 sec
PyPDF2: 0.45 sec
pdfminer.six는 또한 pycryptodome을 필요로하므로 Alpine Linux에서 최소 설치 도커 이미지를 80MB에서 350MB로 밀어 넣는 GCC 및 기타 설치가 필요한 pycryptodome이 필요합니다. PyPDF2는 스토리지에 눈에 띄는 영향을 미치지 않습니다.