import os from pypdf import PdfReader def extract_images_from_pdf(pdf_path, output_folder): if not os.path.exists(output_folder): os.makedirs(output_folder) reader = PdfReader(pdf_path) image_count = 0 print(f'[*] \'{pdf_path}\' 파일 분석 및 이미지 추출을 시작합니다.') for page_idx, page in enumerate(reader.pages): for img_idx, image_file_object in enumerate(page.images): # 이미지 파일 저장 이름 설정 (예: page_1_img_1_image.png) ext = os.path.splitext(image_file_object.name)[1] if not ext: ext = '.png' # 기본 확장자 filename = f'page_{page_idx + 1}_img_{img_idx + 1}{ext}' output_path = os.path.join(output_folder, filename) with open(output_path, 'wb') as fp: fp.write(image_file_object.data) print(f'[+] 이미지 추출 완료: {filename}') image_count += 1 print(f'[+] 모든 작업 완료! 총 {image_count}개의 이미지가 \'{output_folder}\' 폴더에 저장되었습니다.') if __name__ == '__main__': pdf_file = 'sample.pdf' # 추출할 PDF 파일명 output_dir = './extracted_images' # 저장할 폴더명 if not os.path.exists(pdf_file): print(f'[!] \'{pdf_file}\' 파일이 존재하지 않습니다. PDF 파일을 스크립트와 같은 경로에 두고 파일명을 맞춰주세요.') else: extract_images_from_pdf(pdf_file, output_dir)