728x90
반응형
pdf2image라는 패키지를 사용해서 PDF 내 각 페이지를 이미지로 저장해보자.
아래 커맨드로 pdf2image를 설치해준다.
pip install pdf2image
아래는 내가 짠 샘플 코드로, 각 pdf 별 세부 하위폴더를 만든 후 페이지 별 이미지를 저장하게끔 하였다.
코드는 단순하고, 주석도 넣어놨기 때문에 부가적인 설명은 제외한다.
추가적으로 glob, tqdm 정도만 pip로 설치해줘도 될 것 같다.
import os
import glob
from pdf2image import convert_from_path
from tqdm import tqdm
if __name__ == "__main__":
# target_path : pdf 문서가 있는 경로
target_path = "./pdf_data/*.pdf"
# 파일 list 가져오기
file_list = glob.glob(target_path)
for file in tqdm(file_list):
# PDF 문서에서 Image 추출하기
filenm = file.split("/")[-1]
subdir = file.split("/")[1]
new_path = "./images/%s/"%subdir
os.makedirs(new_path, exist_ok=True)
try:
images = convert_from_path(file, 300)# 300 -> dpi / fmt='jpg', output_folder=new_path
except Exception as e:#간혹 empty stream Document가 있을 경우 대비
print("%s:%s"%(file, e))
continue
for idx, image in enumerate(images, start=1):
f_nm = os.path.splitext(filenm)[0]
ext = os.path.splitext(filenm)[1]
#print("Saved Image:%s"%f_nm+"_"+str(idx)+ext)
image.save(new_path+f'{f_nm}-{idx}.jpg', 'JPEG')
혹시 pdf2image에서 에러가 발생한다면 아래 포스팅을 참고
728x90
반응형
'사소한 Tip . 오류 해결법 > python' 카테고리의 다른 글
[python] 파일 리스트 읽고, 특정 파일 외 나머지 삭제하기 (0) | 2023.02.15 |
---|---|
Tuple 에서 index 찾기 (0) | 2022.12.27 |
[python] list 요소 2개씩 묶기 (0) | 2022.11.21 |
[python] multiprocess에서 pdb 사용하기 (2) | 2022.10.31 |
[python/itertools] dictionary 갯수로 잘라내기(index slicing) (0) | 2022.08.25 |