새소식

TIL

PDF 파일에서 특정 페이지 python으로 추출하기

  • -
# fitz 설치
pip install PyMuPDF
def find_pages_with_keyword(input_pdf_path, keyword):
    pdf = fitz.open(input_pdf_path)
    pages_with_keyword = []

    for page_num in range(pdf.page_count):
        page = pdf.load_page(page_num)
        if keyword.lower() in page.get_text().lower():
            pages_with_keyword.append(page_num + 1)

    pdf.close()
    return pages_with_keyword

def print_pages_with_keyword(input_pdf_path, keyword):
    pages = find_pages_with_keyword(input_pdf_path, keyword)

    if len(pages) > 0:
        return pages
        # print(f"키워드 '{keyword}'가 포함된 페이지 쪽수: {', '.join(map(str, pages))}")
    else:
        print(f"키워드 '{keyword}'를 포함하는 페이지를 찾을 수 없습니다.")

# 사용 예시
input_pdf_path = "/content/[NAVER]사업보고서(2023.03.14).pdf"
start_keyword = "4. 재무제표"
end_keyword = "5. 재무제표 주석"

start = print_pages_with_keyword(input_pdf_path, start_keyword)
end = print_pages_with_keyword(input_pdf_path, end_keyword)

def extract_pages(input_pdf_path, output_pdf_path, start_page, end_page):
    pdf = fitz.open(input_pdf_path)
    new_pdf = fitz.open()

    for page_num in range(start_page - 1, end_page):
        new_pdf.insert_pdf(pdf, from_page=page_num, to_page=page_num)

    new_pdf.save(output_pdf_path)
    new_pdf.close()
    pdf.close()

# 사용 예시
output_pdf_path = "/content/네이버_재무제표_2023.pdf"
start_page = start[1]
end_page = end[1] - 1

extract_pages(input_pdf_path, output_pdf_path, start_page, end_page)

 

input_pdf_path: 사용할 pdf 경로
start_keyword: pdf에서 특정 단어가 들어간 부분의 시작 페이지
end_keyword: pdf에서 특정 단어가 들어간 부분의 마지막 페이지

output_pdf_path: 추출한 pdf 파일명

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.