나는 개발자다/실전 파이썬

유튜브 자동화 #1. PDF 파일의 모든 페이지를 이미지 파일로 저장하기

걍교쥬 2021. 11. 1. 21:07

이번 강의는 PDF 파일의 각 페이지를 이미지 파일로 저장하는 파이썬 프로그램을 만들어 본다. 최종 목적은 PDF 파일을 동영상 파일로 변환하는 것이다. 물론, PDF 파일의 텍스트를 오디오로 변환하는 기능까지 추가할 예정이다.

 

최종 프로그램이 성공한다면 모든 진행 내용을 PDF로 정리한 후 동영상으로 변환해서 유튜브에 올릴 생각이다.

 

오늘의 과제는 'PDF 파일의 모든 페이지를 이미지 파일로 저장하는 파이썬 프로그램'을 만드는 것이다.

 

 

필요한 라이브러리를 설치한다.

 

프로그램에 필요한 모듈은 pdf2image와 poppler이다.

 

1. pdf2image 설치하기.

PDF 파일에서 PIL 객체를 생성하고 이미지 처리를 할 수 있다.

command shell에서 아래의 명령으로 pdf2image 모듈을 설치한다.

pip install pdf2image

 

2. poppler 모듈 설치하기.

poppler 모듈은 PDF 문서를 읽고 렌더링하고 변경할 수 있다.

실행 파일을 다운로드해야 한다.

 

https://github.com/oschwartz10612/poppler-windows/releases/

 

압축 파일을 다운로드하고 내 컴퓨터의 적당한 위치에 압축을 푼다.

 

poppler-저장-경로

 

bin 폴더가 있는 전체 경로를 기억하자. 나중에 사용해야 한다.

 

 

PDF 파일의 각 페이지를 이미지로 저장하는 파이썬 프로그램을 만든다.

 

 

파이썬 프로그램은 간단하다.

import pdf2image

def save_pdf_to_image(pdf_file_path, out_dir):
    poppler_path = 'E:/workspace/python/pdf_audiobook/poppler-21.10.0/Library/bin/'

    images = pdf2image.convert_from_path(pdf_file_path, poppler_path = poppler_path)

    for i in range(len(images)):
        images[i].save(out_dir + 'page' + str(i) + '.jpg', 'JPEG')

def main():
    root_dir = 'E:/workspace/python/pdf_audiobook/'
    pdf_file_name = 'audiobook_test.pdf'

    pdf_file_path = root_dir + pdf_file_name
    out_dir = root_dir
    save_pdf_to_image(pdf_file_path, out_dir)

if __name__ == '__main__':
    main()

 

save_pdf_to_image(pdf_file_path, out_dir)

 

pdf_file_path

입력으로 사용할 PDF 파일의 전체 경로를 전달한다.

 

out_dir

이미지가 저장될 위치를 전달한다.

 

poppler_path는 poppler 라이브러리를 저장한 파일 경로를 입력한다.

 

실행하면 아래와 같이 output_dir에 이미지 파일이 생성된다.

 

프로그램-실행-결과

 

page0.jpg를 열어 보자.

 

page0.jpg

 

성공적으로 저장되었다.

 

다음 편에서는 PDF 파일의 텍스트를 추출하고 TTS(Text-to-Speech) 라이브러리를 이용하여 음성 파일로 저장하는 파이썬 프로그램을 만들 예정이다.

 


"PDF 이미지 추출 윈도우 어플리케이션" 만드는 방법입니다. 궁금하신 분은 참고하세요.

 

PDF 이미지 추출 윈도우 어플리케이션 만들기 - 파이썬 코드 공유

안녕하세요. 코드로 먹고 사는 직장인 '코드장인'입니다. 지난 시간에는 "PDF 이미지 추...

blog.naver.com