[python] ReportLab 텍스트 그룹화

ReportLab은 파이썬 기반의 PDF 문서 생성 라이브러리입니다. 이 라이브러리를 사용하여 텍스트를 그룹화하고 스타일을 지정할 수 있습니다. 이번 글에서는 ReportLab으로 텍스트를 그룹화하는 방법에 대해 알아보겠습니다.

그룹화된 텍스트 만들기

ReportLab에서 텍스트를 그룹화하려면 Paragraph 클래스를 사용합니다. 이 클래스는 텍스트를 특정 스타일과 함께 그룹화할 수 있는 기능을 제공합니다. 다음은 Paragraph 클래스의 생성자를 사용하여 텍스트를 그룹화하는 예시입니다:

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

# 문서 생성
doc = SimpleDocTemplate("output.pdf")

# 스타일시트 생성
styles = getSampleStyleSheet()

# 그룹화된 텍스트 생성
text = "안녕하세요. ReportLab을 사용하는 중입니다."
paragraph = Paragraph(text, styles["Normal"])

# 문서에 텍스트 추가
doc.build([paragraph])

위의 코드에서는 SimpleDocTemplate 클래스를 사용하여 PDF 문서를 생성하고, getSampleStyleSheet 함수를 사용하여 스타일시트를 생성합니다. 그런 다음, Paragraph 클래스의 생성자를 사용하여 텍스트를 그룹화하며, 스타일은 styles["Normal"]을 적용하였습니다. 마지막으로, doc.build 메서드를 호출하여 텍스트를 문서에 추가합니다.

텍스트 스타일 지정하기

ReportLab에서는 다양한 스타일을 지정할 수 있습니다. 예를 들어, 텍스트의 크기, 색상, 글꼴 등을 변경할 수 있습니다. 다음은 스타일을 지정하는 예시입니다:

from reportlab.lib.styles import getSampleStyleSheet

# 스타일시트 생성
styles = getSampleStyleSheet()

# 텍스트 스타일 변경
custom_style = styles["Normal"].clone(
    fontSize=12,
    textColor="red",
    fontName="Helvetica-Bold"
)

# 그룹화된 텍스트 생성
text = "안녕하세요, ReportLab"
paragraph = Paragraph(text, custom_style)

위의 코드에서는 getSampleStyleSheet 함수를 사용하여 스타일시트를 생성합니다. 그리고 clone 메서드를 사용하여 기본 스타일(styles["Normal"])을 복제한 후, 원하는 스타일을 변경하는 방법을 보여줍니다. 마지막으로, Paragraph 클래스의 생성자를 통해 스타일이 적용된 텍스트를 만듭니다.

결론

ReportLab을 사용하여 텍스트를 그룹화하고 스타일을 지정하는 방법에 대해 알아보았습니다. 이를 통해 원하는 형식과 스타일의 텍스트를 PDF 문서에 추가할 수 있습니다. ReportLab의 다양한 기능과 옵션을 사용하여 더욱 풍부하고 다채로운 PDF를 생성해보세요.


참고 자료: