CodeGym/행동/Python SELF KO/ReportLab를 사용해서 PDF 문서의 텍스트와 제목 스타일링하기

ReportLab를 사용해서 PDF 문서의 텍스트와 제목 스타일링하기

사용 가능

1. PDF에 텍스트와 제목 추가하기 기초

ReportLab에서는 canvas 객체를 사용해서 텍스트를 추가하는데, 이를 통해 글꼴, 색상, 크기와 텍스트 위치를 설정할 수 있어.

제목과 텍스트가 있는 간단한 PDF 만들기

Python
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4

# 새로운 PDF 파일 생성
pdf_file = canvas.Canvas("styled_text.pdf", pagesize=A4)
width, height = A4

# 제목 추가
pdf_file.setFont("Helvetica-Bold", 20)
pdf_file.drawString(100, height - 100, "판매 보고서")

# 본문 텍스트 추가
pdf_file.setFont("Helvetica", 12)
pdf_file.drawString(100, height - 130, "이 문서는 지난 분기의 판매 데이터를 포함하고 있습니다.")

# PDF 저장
pdf_file.save()

이 코드는 제목과 본문 텍스트가 포함된 PDF 파일을 생성해. 우리는 setFont() 메서드를 사용해서 텍스트의 글꼴과 크기를 설정해.

2. 텍스트 스타일링과 포맷팅

ReportLab을 사용하면 텍스트의 색상, 글꼴, 크기를 변경해서 스타일 있는 제목과 본문을 만들 수 있어. 이렇게 하면 문서가 더 가독성이 좋아져.

텍스트 글꼴과 크기 변경하기

ReportLab은 Helvetica, Times-Roman, Courier 같은 기본 글꼴을 지원해. setFont()를 사용해서 글꼴 스타일(일반, 굵게, 이탤릭)과 크기를 설정할 수 있어.

Python
pdf_file.setFont("Helvetica-Bold", 18)  # 굵은 글꼴로 제목
pdf_file.drawString(100, height - 50, "주요 제목")

pdf_file.setFont("Helvetica-Oblique", 14)  # 이탤릭으로 부제목
pdf_file.drawString(100, height - 80, "부제목: 분기별 결과")

텍스트 색상 변경하기

setFillColorRGB() 메서드를 사용해서 텍스트의 색상을 변경할 수 있어. 이 메서드는 0부터 1까지의 RGB 값을 받아.

Python
pdf_file.setFillColorRGB(0.2, 0.4, 0.6)  # 파란색
pdf_file.setFont("Helvetica", 12)
pdf_file.drawString(100, height - 110, "이 텍스트는 파란색입니다.")

reportlab.lib.colors에서 미리 정의된 색상을 사용할 수도 있어.

Python
from reportlab.lib import colors

pdf_file.setFillColor(colors.red)
pdf_file.drawString(100, height - 140, "빨간색 텍스트")

3. 정렬과 여러 줄 텍스트

텍스트가 길 경우, 여러 줄로 표현하는 것이 좋아. ReportLab은 자동 줄바꿈을 지원하는 TextObject 클래스를 제공해.

TextObject를 사용한 여러 줄 텍스트

Python
text = """
보고서는 지난 세 달 동안의 판매 분석을 포함하고 있습니다.
우리는 변화와 그것이 회사의 전체 성장에 미치는 영향을 검토합니다.
"""

text_object = pdf_file.beginText(100, height - 180)
text_object.setFont("Helvetica", 12)
text_object.setFillColor(colors.darkblue)

for line in text.split("\n"):
    text_object.textLine(line)

pdf_file.drawText(text_object)

이 코드는 여러 줄의 텍스트 블록을 생성하는데, 각 줄을 PDF에 추가해. TextObject를 사용하면 긴 텍스트를 자동으로 포맷팅할 수 있어서 좋아.

4. 단락을 사용한 텍스트 스타일링

reportlab.platypus 모듈의 Paragraph 클래스를 사용하면 HTML 태그(<b>, <i>, <u> 등)를 지원하는 스타일링된 텍스트를 추가할 수 있어. Paragraph는 정렬과 들여쓰기도 지원해서 포맷팅된 텍스트를 만들 때 유용해.

Paragraph를 사용한 단락 생성

Python
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import SimpleDocTemplate, Paragraph

# PDF 설정
doc = SimpleDocTemplate("styled_paragraphs.pdf", pagesize=A4)
styles = getSampleStyleSheet()
elements = []

# 굵은 글꼴과 이탤릭 텍스트로 단락 생성
text = "판매 보고서2023년 분기별 보고서"
paragraph = Paragraph(text, styles["Title"])
elements.append(paragraph)

# 본문 텍스트 추가
main_text = """
이 보고서는 지난 분기의 주요 판매 데이터와
회사의 총 수익에 대한 판매의 영향을 분석한 내용을 포함합니다.
"""
paragraph = Paragraph(main_text, styles["BodyText"])
elements.append(paragraph)

# PDF 생성
doc.build(elements)

여기서 우리는 Paragraph를 사용해서 스타일링된 텍스트를 추가했어. HTML 태그를 포함해서 굵은 글꼴과 이탤릭 텍스트를 만들었고, getSampleStyleSheet()는 기본 스타일(예: Title, BodyText)을 제공해.

1
과제
Python SELF KO,  레벨 44레슨 3
잠금
ReportLab를 사용한 기본 PDF 생성
ReportLab를 사용한 기본 PDF 생성
2
과제
Python SELF KO,  레벨 44레슨 3
잠금
여러 스타일을 가진 여러 줄의 텍스트
여러 스타일을 가진 여러 줄의 텍스트
3
과제
Python SELF KO,  레벨 44레슨 3
잠금
Paragraph 사용하여 형식 있는 텍스트 만들기
Paragraph 사용하여 형식 있는 텍스트 만들기
4
과제
Python SELF KO,  레벨 44레슨 3
잠금
커스터마이즈 스타일이 적용된 개인 보고서
커스터마이즈 스타일이 적용된 개인 보고서
코멘트
  • 인기
  • 신규
  • 이전
코멘트를 남기려면 로그인 해야 합니다
이 페이지에는 아직 코멘트가 없습니다