본문 바로가기

카테고리 없음

파이썬 fpdf 라이브러리를 활용한 자동 PDF 문서 제작 팁

Python fpdf 라이브러리로 PDF 문서 자동 생성하기

현대 사회에서 문서화는 매우 중요한 작업이며, 특히 PDF 형식의 문서는 보편적으로 사용됩니다. 사무 업무, 보고서 작성, 인보이스 발행 등 다양한 분야에서 PDF 파일의 필요성이 증가하고 있습니다. 이 글에서는 Python의 fpdf 라이브러리를 사용하여 PDF 문서를 자동으로 생성하는 방법을 소개하겠습니다. fpdf는 Python으로 간단하게 PDF 파일을 만들 수 있게 해주는 경량 라이브러리입니다.

fpdf 라이브러리 소개

fpdf는 Free PDF, Python의 약자로, PDF 파일을 생성할 수 있는 파이썬 라이브러리입니다. 이 라이브러리는 매우 간단하면서도 강력한 기능을 제공하여 다양한 형식의 PDF 문서를 생성할 수 있도록 돕습니다.

fpdf의 주요 기능

  • 텍스트 추가: 다양한 폰트와 크기를 지원합니다.
  • 이미지 추가: JPEG, PNG, GIF 형식의 이미지를 삽입할 수 있습니다.
  • 페이지 관리: 새로운 페이지 추가 및 페이지 넓이 조정 가능합니다.
  • 표 생성: 데이터를 쉽게 표 형식으로 정리할 수 있습니다.
  • 링크 삽입: 기타 웹 페이지나 문서로의 링크를 추가할 수 있습니다.

fpdf 설치하기

fpdf 라이브러리를 사용하기 위해서는 먼저 설치가 필요합니다. Python이 설치되어 있어야 하며, 다음의 명령어를 통해 라이브러리를 설치할 수 있습니다.

pip install fpdf

이 명령어는 fpdf를 Python의 패키지 관리자인 pip를 통해 설치하는 방법입니다. 설치가 완료되면 Python 환경에서 fpdf를 사용할 준비가 된 것입니다.

기본 사용법

첫 번째 PDF 문서 생성하기

이제 우리가 fpdf 라이브러리를 활용하여 간단한 PDF 문서를 생성하는 방법에 대해 알아보겠습니다. 아래의 코드는 "Hello World"라는 텍스트가 포함된 기본적인 PDF 문서를 생성하는 예제입니다.

from fpdf import FPDF

PDF 객체 생성

pdf = FPDF()
pdf.add_page()

글꼴 설정

pdf.set_font("Arial", size=12)

텍스트 추가

pdf.cell(200, 10, txt="Hello World", ln=True, align='C')

PDF 파일 저장

pdf.output("hello_world.pdf")

해당 코드를 실행하면 "hello_world.pdf"라는 이름으로 PDF 파일이 생성됩니다.

코드 설명

  • FPDF(): FPDF 객체를 생성합니다.
  • add_page(): 새로운 페이지를 추가합니다.
  • set_font(): 텍스트에 사용할 글꼴을 설정합니다.
  • cell(): 텍스트를 추가하는 함수로, 위치와 정렬을 설정할 수 있습니다.
  • output(): PDF 파일을 저장하는 함수입니다.

PDF 문서에 텍스트 추가하기

텍스트 스타일과 정렬

텍스트는 다양한 폰트 스타일 및 크기, 정렬 옵션을 통해 추가할 수 있습니다. 다음 코드에서는 여러 스타일을 사용하여 텍스트를 추가하는 방법을 보여줍니다.

pdf = FPDF()
pdf.add_page()

pdf.set_font("Arial", 'B', 16)

볼드체, 크기 16

pdf.cell(0, 10, '제목', 0, 1, 'C')

제목 추가 (센터 정렬)


pdf.set_font("Arial", size=12)

일반 폰트로 변경

pdf.cell(0, 10, '이 문서는 fpdf 라이브러리를 사용하여 생성되었습니다.', 0, 1, 'L')

왼쪽 정렬

pdf.cell(0, 10, '또한, 여러 줄로 텍스트를 추가할 수 있습니다.', 0, 1, 'L')

pdf.output("styled_text.pdf")

글꼴 및 크기 조정

fpdf에서는 다양한 기본 글꼴을 지원합니다. 사용 가능한 글꼴의 예시는 다음과 같습니다:

  • Arial
  • Courier
  • Times

글꼴 크기는 숫자로 설정할 수 있으며, 일반적으로 10부터 48까지의 범위를 지원합니다. 적절한 커스텀 글꼴을 사용하거나 서브 폰트를 추가할 수도 있습니다.

이미지 추가하기

PDF 파일에 이미지를 추가하는 것은 매우 유용한 기능입니다. JPEG와 PNG 형식의 이미지를 추가할 수 있으며, 아래 예제를 통해 이미지 추가 방법을 살펴보겠습니다.

pdf = FPDF()
pdf.add_page()

pdf.image('sample_image.jpg', x=10, y=8, w=100)

x, y 좌표 및 너비 설정

pdf.output("image_added.pdf")

이미지 크기 조정

이미지를 삽입할 때는 x, y 좌표와 함께 너비 또는 높이를 지정할 수 있습니다. 비율을 유지하려면 원하는 너비나 높이만 입력하면 됩니다. 예를 들어, 높이만 설정하면 비율에 맞춰 너비가 조정됩니다.

표 생성하기

fpdf 라이브러리를 사용하여 데이터의 표 형식을 쉽게 만들 수 있습니다. 아래의 코드는 기본적인 표를 생성하는 방법입니다.

pdf = FPDF()
pdf.add_page()

셀 너비 설정

pdf.set_font("Arial", size=12)
pdf.cell(40, 10, '이름', 1)

제목 셀 (테두리 있음)

pdf.cell(40, 10, '나이', 1)
pdf.cell(40, 10, '국가', 1)
pdf.ln()

줄바꿈

데이터 추가

people = [
    ['홍길동', '30', '한국'],
    ['존 스미스', '25', '미국'],
    ['마리아 가르시아', '28', '스페인'],
]

for person in people:
    for item in person:
        pdf.cell(40, 10, item, 1)

데이터 셀 (테두리 있음)

    pdf.ln()

줄바꿈


pdf.output("table.pdf")

셀의 너비 및 높이 조정

셀의 너비와 높이는 각각 data type에 따라 다르게 설정할 수 있습니다. 사용자는 위의 코드에서 pdf.cell(40, 10, ...) 부분과 같이 원하는 값으로 조정할 수 있습니다. 데이터의 길이에 따라 맞춤형으로 조정하는 것이 좋습니다.

페이지 관리하기

PDF 문서에 여러 페이지를 추가하거나 페이지 크기를 조정하는 방법에 대해 알아보겠습니다.

새 페이지 생성

pdf.add_page() 메서드를 통해 새로운 페이지를 추가할 수 있습니다.

pdf = FPDF()
pdf.add_page()
pdf.cell(0, 10, '첫 번째 페이지', 0, 1, 'C')

pdf.add_page()

새로운 페이지 추가

pdf.cell(0, 10, '두 번째 페이지', 0, 1, 'C')

pdf.output("multi_page.pdf")

페이지 크기 설정

PDF 문서의 페이지 크기도 설정할 수 있습니다. A4, Letter 등 다양한 크기를 쉽게 지정할 수 있습니다.

pdf = FPDF(format='A4')

A4 형식

pdf.add_page()
pdf.cell(0, 10, 'A4 크기의 PDF 문서입니다.', 0, 1, 'C')
pdf.output("a4_page.pdf")

결론

이번 글에서는 Python의 fpdf 라이브러리를 사용하여 PDF 문서를 자동으로 생성하는 방법에 대해 알아보았습니다. 이 라이브러리를 활용하면 다양한 형식과 스타일로 PDF 문서를 생성할 수 있어, 기업, 개인 프로젝트 등 여러 곳에서 유용하게 사용할 수 있습니다. 특히 자동화를 통해 반복적인 문서 작업을 줄이고 효율성을 높이는데 기여할 수 있습니다.

위의 예제를 통해 fpdf의 기본 사용법을 익히고, 후속 프로젝트에 응용해 보시기 바랍니다. Python과 fpdf를 활용하여 생활의 다양한 순간을 기록하고, 더 나아가 생산성을 높이는데 도움이 되기를 바랍니다.