[python] ReportLab 섹션 스타일링

ReportLab은 Python 프로그래밍 언어를 사용하여 PDF 문서를 생성하는 강력한 라이브러리입니다. 이 블로그 포스트에서는 ReportLab을 사용하여 섹션을 스타일링하는 방법에 대해 알아보겠습니다.

목차

섹션 제목 스타일링

ReportLab을 사용하면 섹션 제목에 다양한 스타일을 적용할 수 있습니다. Paragraph 클래스를 사용하여 텍스트를 만들고, 원하는 스타일을 적용할 수 있는 ParagraphStyle 객체를 생성합니다.

from reportlab.platypus import Paragraph, SimpleDocTemplate
from reportlab.lib.styles import ParagraphStyle

title = "섹션 제목"
title_style = ParagraphStyle('TitleStyle', fontSize=18, textColor='blue')

doc = SimpleDocTemplate("example.pdf")
story = []
story.append(Paragraph(title, title_style))

doc.build(story)

ParagraphStyle 객체의 속성을 조정하여 글꼴 크기, 글꼴 색상, 정렬 등을 변경할 수 있습니다.

섹션 내용 스타일링

섹션 내용도 섹션 제목과 마찬가지로 스타일링할 수 있습니다. 텍스트의 스타일을 지정한 후 Paragraph 클래스를 사용하여 섹션 내용을 작성합니다.

content = "섹션 내용"
content_style = ParagraphStyle('ContentStyle', fontSize=14, textColor='black')

story.append(Paragraph(content, content_style))

ParagraphStyle 객체의 속성을 조정하여 섹션 내용의 스타일을 변경할 수 있습니다.

섹션 구분선 추가

섹션 간에 구분선을 추가하여 문서의 가독성을 높일 수 있습니다. Frame 클래스를 사용하여 라인을 그린 후, addFromList 메서드를 사용하여 페이지에 그려진 라인을 추가합니다.

from reportlab.platypus import Frame, PageTemplate
from reportlab.lib.units import inch

line = Frame(
    x1=0.5*inch,
    y1=0.5*inch,
    width=7*inch,
    height=0.5,
    showBoundary=0,
    leftPadding=0,
    bottomPadding=0,
    rightPadding=0,
    topPadding=0,
    id='line'
)

line_template = PageTemplate(frames=[line])

doc.addPageTemplates([line_template])

Frame 클래스를 사용하여 구분선의 위치와 크기, 라인의 굵기 등을 조정할 수 있습니다.

이제 ReportLab을 사용하여 섹션을 스타일링하는 방법에 대해 알아보았습니다. 다양한 스타일을 적용하여 보다 효과적이고 직관적인 PDF 문서를 생성할 수 있습니다.

참고 자료