[python] ReportLab 이미지 비율 조정
ReportLab은 Python에서 PDF 문서를 생성하는 데 사용되는 강력한 라이브러리입니다. 이미지를 PDF에 삽입할 때 이미지의 비율을 조정하는 방법에 대해 알아보겠습니다.
이미지 비율 유지하기
일반적으로, 이미지를 PDF에 추가할 때 이미지의 원래 비율을 유지하는 것이 중요합니다. Image() 함수를 사용하여 이미지를 삽입할 수 있습니다. 이 함수에 width와 height 매개변수를 지정하여 이미지의 크기를 조정할 수 있습니다. 이미지 크기를 지정할 때 비율을 유지하기 위해서는 width 또는 height 중 하나의 값을 지정하고, 다른 값은 None으로 설정해야 합니다.
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import inch
from reportlab.pdfgen import canvas
from reportlab.lib.utils import ImageReader
width, height = A4
def add_image_to_pdf(image_path):
c = canvas.Canvas("output.pdf", pagesize=A4)
img_width = 4 * inch # 원하는 이미지 너비
img_height = 3 * inch # 원하는 이미지 높이
img = ImageReader(image_path)
# 이미지 비율을 유지하며 출력하기 위해 width 또는 height 중 하나만 지정
if img.getWidth() / img_height > img.getHeight() / img_width:
c.drawImage(img, (width - img_width) / 2, (height - img_height) / 2,
width=img_width, height=None)
else:
c.drawImage(img, (width - img_width) / 2, (height - img_height) / 2,
width=None, height=img_height)
c.showPage()
c.save()
위의 코드에서 image_path
는 삽입할 이미지의 파일 경로입니다. 4 * inch
와 3 * inch
는 이미지의 원하는 너비와 높이입니다. 비율을 유지하면서 이미지를 출력하기 위해 if-else 문을 사용하였습니다. 출력된 PDF 파일은 “output.pdf”로 저장됩니다.
참고 자료
이제 ReportLab을 활용하여 이미지를 비율을 유지하며 PDF에 추가하는 방법을 배웠습니다. 이를 응용하여 보고서나 문서 작성에 활용할 수 있습니다.