관리 메뉴

솜씨좋은장씨

[Python] PyMuPDF를 활용하여 PDF를 image로 변환하는 방법! 본문

Programming/Python

[Python] PyMuPDF를 활용하여 PDF를 image로 변환하는 방법!

솜씨좋은장씨 2022. 4. 9. 19:34
728x90
반응형

2020.12.19 - [Programming/Python] - [Python] pdf 파일을 이미지로 변환하는 여러가지 방법 ( feat. pdf2image, tifffile, wand, ImageMagick )

 

[Python] pdf 파일을 이미지로 변환하는 여러가지 방법 ( feat. pdf2image, tifffile, wand, ImageMagick )

각 페이지별 이미지 변환 ( pdf to jpg ) - pdf2image 활용 여러 페이지로 구성되어있는 pdf 파일을 각 페이지별 이미지로 변환하는 방법에 대해서 적어보려 합니다. 먼저 이 과정을 진행하기 위해서 필

somjang.tistory.com

기존에 pdf를 이미지로 변환하는 방법들을 여러가지 찾아본 적이 있었습니다.

이번에 프로젝트를 진행하면서 찾은 다른 방법이 또 있어서 공유하고자 합니다.

👨🏻‍💻 PyMuPDF 설치

$ pip install PyMuPDF

먼저 PyMuPDF 를 설치합니다.

👨🏻‍💻 pdf -> png 변환 코드

def pdf_to_png(file_path, file_name):
    pdf_file_path=os.path.join(file_path, FileType.original_file, file_name)
    zoom_x = 2.0  # horizontal zoom
    zoom_y = 2.0  # vertical zoom
    mat = fitz.Matrix(zoom_x, zoom_y)  # zoom factor 2 in each dimension

    doc = fitz.open(pdf_file_path)

    file = file_name.rsplit('.', maxsplit=1)[0]
    # pages = [{page_number= , thumbnail = }, {page_number = , thumbnail = }, ...]
    for page in doc:
        image_path = os.path.join(file_path, f"{file}_{page.number}.png")
        pix = page.get_pixmap(matrix=mat)  # render page to an image
        pix.save(image_path)  # store image as a PNG

 

위의 코드는 PyMuPDF의 fitz를 활용하여 파일을 열고 한 페이지 씩 png로 변환하는 코드입니다.

 

읽어주셔서 감사합니다.

Comments