# 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 파일명