파이썬 PDF 패키지 비교

ideafy·2024년 6월 8일

프로젝트

목록 보기
4/25

개인 프로젝트를 진행하다가 pdf를 읽어야 되는데 패키지라 여러 개라 어떤 패키지를 골라야 하는지 고민을 좀 했다.

나의 요구조건은 띄어쓰기가 제대로 되고 표가 포함된 pdf를 잘 읽을 수 있는지다.

테스트용 pdf

PyPDF2

코드

def read_pdf(key):
    file_stream = get_pdf_file_stream(key)
    reader = PyPDF2.PdfReader(file_stream)
    text = ''
    for page in range(len(reader.pages)):
        text += reader.pages[page].extract_text()
    print("[INFO] Extracted text from PDF:")
    print(text[:300])

결과

[time:3.2418527603149414 ] Extracted text from PDF:
2. A WS EC2 vs Light sail
12 .  A W S  E C 2  v s  L i g h t s a i l
Amaz on Light sail Amaz on EC2
사용사용자  지정  코드  및  일반  CMS 를
포함한  간단한  웹  애플리케이션  및
웹  사이트에  사용됩니다 .HPC, 빅  데이터  및  분석  워크로드
와  같은  소규모  내지  엔터프라이즈
애플리케이션에  사용됩니다 .
성능소규모에서  중간  규모에  이르는  워
크로드가  있는  애플리케이션에  사용
됩니다 .복잡한  아키텍처에서  소규모

pdfplumber

코드

def read_pdf(key):
    file_stream = get_pdf_file_stream(key)
    docs = pdfplumber.open(file_stream)
    text = ''
    for page in docs.pages:
        text += page.extract_text()
    print("[INFO] Extracted text from PDF:")
    print(text[:300])

결과

[time:3.5518717765808105 ] Extracted text from PDF:
2. AWS EC2 vs Lightsail
Amazon Lightsail Amazon EC2
사용자 지정 코드 및 일반 CMS를 HPC, 빅 데이터 및 분석 워크로드
사용 포함한 간단한 웹 애플리케이션 및 와 같은 소규모 내지 엔터프라이즈
웹 사이트에 사용됩니다. 애플리케이션에 사용됩니다.
소규모에서 중간 규모에 이르는 워
복잡한 아키텍처에서 소규모 이상의
성능 크로드가 있는 애플리케이션에 사용
워크로드에 사용됩니다.
됩니다.
Amazon EC2에서 애플리케이션을
배포하는 것은 애플리케이션 유형,
몇 번의 클릭만으로 Lightsai

PyMuPDF

결과

def read_pdf(key):
    file_stream = get_pdf_file_stream(key)
    doc = fitz.open(stream=file_stream)
    text = ''
    for page in doc:
        text += page.get_text()
    print("[INFO] Extracted text from PDF:")
    print(text[:300])

결과

[time:3.208136558532715 ] Extracted text from PDF:
2. AWS EC2 vs Lightsail
1
2. AWS EC2 vs Lightsail
Amazon Lightsail
Amazon EC2
사용
사용자 지정 코드 및 일반 CMS를
포함한 간단한 웹 애플리케이션 및
웹 사이트에 사용됩니다.
HPC, 빅 데이터 및 분석 워크로드
와 같은 소규모 내지 엔터프라이즈
애플리케이션에 사용됩니다.
성능
소규모에서 중간 규모에 이르는 워
크로드가 있는 애플리케이션에 사용
됩니다.
복잡한 아키텍처에서 소규모 이상의
워크로드에 사용됩니다.
편의성
몇 번의 클릭만으로 Lightsail에서
애플리케이션

시간: PyMuPDF > PyPDF2 > pdfplumber

PyMuPDF가 표의 인덱스와 각 셀을 가장 잘 나누어 주었다. 맨 위에 알 수 없는 중복이 나타나긴 하지만... 다른 패키지는 인덱스와 셀이 섞여있는 경우도 있어서 현재까지로는 PyMuPDF를 사용하는게 가장 안전할 것 같다

profile
재밌게 공부하고 싶어요

0개의 댓글