반응형
img2pdf활용
패키지 설치
pip install img2pdf
먼저 img2pdf라는 라이브러리를 받아주자
소스코드
# jpg to pdf with img2pdf
import os
from img2pdf import convert
realpath = r"D:/github/marinelifeirony/Python/Pillow/images"
absolutepath = r"images"
with open("out.pdf", "wb") as f:
image_list = []
for file in os.listdir(realpath):
if file.endswith(".jpg"):
image_list.append(realpath + '/' + file)
print(image_list)
pdf = convert(image_list)
f.write(pdf)
realpath이나 absolutepath 둘중 맘에 드는거로 경로 적어주고 실행해보자.
absolutepath을 쓰고 싶은 경우 realpath 부분을 다 absolutepath으로 바꿔주어야 된다.
결과
정상적으로 3개의 이미지가 차례로 합쳐져 pdf로 생성되었다.
에러가 나는 경우
이런식으로 에러가 나는 경우는 BytesIO에서 해당 경로에서 파일을 찾지 못했을때 나타난다.
파일 경로가 제대로 작성되었나 확인하는게 좋다.
다른 블로그에 돌아다니는 코드를 보니
image_list.append(file)
이런식으로 파일이름만 추가해서 convert함수에 넘겨주던데 이러면 BytesIO에서 파일을 못찾는다.
반드시 전체 상대경로나 절대경로를 넣어줘야한다.
pillow사용
패키지설치
pip install Pillow
소스코드
# jpg to pdf with pillow
import os
from PIL import Image
realpath = r"D:/github/marinelifeirony/Python/Pillow/images"
absolutepath = r"images"
images = [
Image.open(realpath + '/' + f)
for f in os.listdir(realpath)
]
images[0].save(
"out.pdf", "PDF", resolution=100.0, save_all=True, append_images=images[1:]
)
결과물은 비슷하나 개인적으로는 pillow를 사용해서 만드는것을 추천한다.
반응형
'Python' 카테고리의 다른 글
python 무료 vpn을 통해 ip 바꾸기 (1) | 2022.07.24 |
---|---|
python pandas 중복된 데이터를 가진 행을 하나로 줄이기 reduce (1) | 2022.07.19 |
파이썬 유튜브 영상 정보 다운로드하기 pytube (0) | 2022.06.20 |
Python smtpllib를 이용한 이메일 보내기 (0) | 2022.03.10 |
파이썬 regex 정규표현식으로 match된 부분 while문으로 하나씩 변경하기 (0) | 2021.05.25 |