새소식

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

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

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