안녕하세요, 개발자 여러분! 오늘은 여러분과 함께 파이썬으로 PDF 파일을 자동 생성하는 방법을 다뤄보려고 해요. PDF 자동 생성은 보고서나 인보이스, 혹은 다양한 문서 작업에서 시간을 절약해주는 유용한 기술이죠. 이 글에서는 실질적인 코드 예시와 함께 알아볼 테니, 함께 따라와 주세요!

PDF 생성 준비하기

PDF 파일을 생성할 때, 파이썬의 reportlab 라이브러리를 사용할 거예요. 우선, reportlab을 설치해야겠죠? 터미널이나 커맨드 라인에서 아래 명령어를 입력해 주세요.

pip install reportlab

reportlab은 PDF 문서를 생성할 때 가장 널리 사용되는 라이브러리 중 하나로, 다양한 기능을 제공해줍니다.

기본 PDF 파일 생성

라이브러리를 설치했으니 이제 간단한 PDF 파일을 생성해볼까요? 다음 코드를 보세요:

from reportlab.lib.pagesizes import LETTER
from reportlab.pdfgen import canvas

def create_simple_pdf(filename):
    c = canvas.Canvas(filename, pagesize=LETTER)
    c.drawString(72, 720, "안녕하세요, 이것은 PDF 테스트입니다!")
    c.save()

create_simple_pdf("example.pdf")

위 코드를 실행하면 “example.pdf”라는 파일이 생성되며, 그 안에는 “안녕하세요, 이것은 PDF 테스트입니다!”라는 문구가 들어가 있을 거예요. drawString 함수는 텍스트를 특정 좌표에 표시하도록 도와줍니다.

더 나아가기: 스타일링과 이미지 추가

PDF 파일이 좀 더 멋지게 보이도록 스타일을 추가해볼까요? reportlab은 폰트 스타일과 사이즈, 그리고 이미지를 추가할 수 있는 기능도 제공해줍니다.

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image

def create_stylish_pdf(filename):
    doc = SimpleDocTemplate(filename, pagesize=A4)
    styles = getSampleStyleSheet()
    story = []

    # 타이틀
    title = "파이썬으로 PDF 만들기"
    story.append(Paragraph(title, styles['Title']))
    story.append(Spacer(1, 12))

    # 본문
    content = "이제 PDF에 스타일과 이미지를 추가해봅시다!"
    story.append(Paragraph(content, styles['BodyText']))
    story.append(Spacer(1, 12))

    # 이미지 추가
    image_path = "path/to/your/image.png"
    try:
        img = Image(image_path, width=200, height=100)
        story.append(img)
    except FileNotFoundError:
        story.append(Paragraph("이미지를 찾을 수 없습니다.", styles['BodyText']))
    
    doc.build(story)

create_stylish_pdf("stylish_example.pdf")

이 코드에서는 SimpleDocTemplate을 사용해 좀 더 복잡한 문서를 생성했어요. 스타일을 적용한 타이틀, 본문, 그리고 이미지를 추가했죠. getSampleStyleSheet를 사용해 빠르게 스타일을 가져올 수 있어요. 이미지 경로는 각자에 맞게 설정해 주세요!

결론

이제 파이썬을 사용해 PDF 파일을 쉽게 생성하고, 스타일을 추가하는 방법을 알게 되셨네요. reportlab 라이브러리를 활용하면 다양한 문서 자동화를 수행할 수 있으니, 여러분의 프로젝트에 적용해 보세요. 다음에는 더욱 흥미로운 주제로 돌아오겠습니다. 그때까지 해피 코딩하세요!