파이썬을 이용한 image to pdf 변환 프로그램

아래 홈페이지를 참고?아니 그냥 따라했습니다.
https://datatofish.com/images-to-pdf-python/

작업환경
OS : window 10
IDE : PyCharm
Version : Python 3.7.7

먼저 pillow가 없으신 분은 pip을 사용하여 다운받아줍니다.



그리고 다음과 같이 작성하면 이미지파일을 pdf로 만들수 있습니다.

from PIL import Image

image1 = Image.open('C:/Temp/python_proj/img2pdf/1.PNG')
im1 = image1.convert('RGB')
im1.save('C:/Temp/python_proj/img2pdf/pdfout/test.pdf')

한개의 이미지를 사용하여 만들 수도 있지만, 여러개의 이미지를 pdf로 만들어야하는 경우도 있습니다.

이럴땐, 여러개를 만들어줍니다.

from PIL import Image


image1 = Image.open('C:/Temp/python_proj/img2pdf/1.PNG')
image2 = Image.open('C:/Temp/python_proj/img2pdf/2.PNG')
image3 = Image.open('C:/Temp/python_proj/img2pdf/3.PNG')
image4 = Image.open('C:/Temp/python_proj/img2pdf/4.PNG')

im1 = image1.convert('RGB')
im2 = image1.convert('RGB')
im3 = image1.convert('RGB')
im4 = image1.convert('RGB')

imagelist = [im2,im3,im4]

im1.save('C:/Temp/python_proj/img2pdf/pdfout/test.pdf',save_all=True, append_images=imagelist)

위 처럼 작성하면 여러장으로 이루어진 pdf를 작성하실 수 있습니다.

하지만 10장이 넘어가고 한다면 귀찮아집니다. 그러니 특정 폴더 안에 있는 이미지 전체를 하는 방법을 추가합시다.

from PIL import Image
import os

path_dir = 'C:/Temp/python_proj/img2pdf/imgfile'
file_list = os.listdir(path_dir)

img_list = []

img_path = 'C:/Temp/python_proj/img2pdf/imgfile/'+file_list[0];
im_buf = Image.open(img_path)
cvt_rgb_0 = im_buf.convert('RGB')

for i in file_list:
    img_path = 'C:/Temp/python_proj/img2pdf/imgfile/' + i;
    im_buf = Image.open(img_path)
    cvt_rgb = im_buf.convert('RGB')
    img_list.append(cvt_rgb)

    # image = Image.open(img_path)
    # image = image.convert('RGB')
    # pdf_list.insert(image)

del img_list[0]
cvt_rgb_0.save('C:/Temp/python_proj/img2pdf/pdfout/test.pdf',save_all=True, append_images=img_list)

Python은 C랑 달라서 아직 어색해서 잘 모르겠네요.

참고한 홈페이지에선 tkinter로 GUI를 하셨는데, 저는 PyQT로 해보려 합니다.
추후에요... ㅎㅎ

댓글

이 블로그의 인기 게시물

젯슨 나노 - GPIO