본문 바로가기
카테고리 없음

파이썬으로 PDF 자동화하기 - PyPDF2와 fpdf 활용법

by 혜택보관소 2024. 11. 21.

PDF는 문서 공유와 저장에서 널리 사용되는 형식입니다.

파이썬의 PyPDF2fpdf 라이브러리를 사용하면 PDF 파일을 읽고, 합치고, 분리하거나 새로 생성할 수 있습니다.

이번 글에서는 PDF 파일을 자동화하는 기본적인 방법과 실습 예제를 소개합니다.

파이썬 PDF 자동화

 

1. PDF 자동화를 위한 라이브러리 설치

PDF 작업을 위해 두 가지 라이브러리를 설치해야 합니다:

pip install PyPDF2
pip install fpdf

PyPDF2: PDF 읽기, 분리, 합치기 등을 수행합니다.
fpdf: 새 PDF 파일을 생성하고 커스터마이징할 수 있습니다.

2. PDF 파일 읽기

PyPDF2를 사용하여 PDF 파일의 페이지 수와 내용을 읽는 방법을 살펴보겠습니다.

예제: PDF 내용 읽기

from PyPDF2 import PdfReader

# PDF 파일 읽기
reader = PdfReader("example.pdf")
print(f"총 페이지 수: {len(reader.pages)}")

# 첫 번째 페이지 내용 출력
first_page = reader.pages[0]
print("첫 번째 페이지 내용:")
print(first_page.extract_text())

위 코드에서는 PdfReader를 사용해 PDF 파일의 페이지 수와 첫 페이지 내용을 출력합니다.

3. PDF 병합

여러 PDF 파일을 하나로 합치는 방법입니다.

예제: PDF 병합

from PyPDF2 import PdfMerger

# PDF 병합
merger = PdfMerger()
merger.append("file1.pdf")
merger.append("file2.pdf")
merger.write("merged.pdf")
merger.close()

print("PDF 파일이 병합되었습니다.")

위 코드는 PdfMerger를 사용하여 file1.pdffile2.pdf를 하나의 파일로 병합합니다.

4. PDF 분리

PDF 파일에서 특정 페이지를 추출하여 새 PDF로 저장합니다.

예제: PDF 분리

from PyPDF2 import PdfWriter

# PDF 분리
reader = PdfReader("example.pdf")
writer = PdfWriter()

# 첫 번째 페이지 추출
writer.add_page(reader.pages[0])
with open("page1.pdf", "wb") as output_pdf:
    writer.write(output_pdf)

print("첫 번째 페이지가 추출되었습니다.")

위 코드는 PdfWriter를 사용해 PDF의 첫 번째 페이지를 새 파일로 저장합니다.

5. PDF 생성

새 PDF 파일을 생성하고 텍스트와 이미지를 추가하려면 fpdf 라이브러리를 사용합니다.

예제: PDF 생성

from fpdf import FPDF

# PDF 생성
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)

# 텍스트 추가
pdf.cell(200, 10, txt="Python으로 생성된 PDF 파일", ln=True, align="C")
pdf.cell(200, 10, txt="이것은 첫 번째 페이지입니다.", ln=True, align="L")

# PDF 저장
pdf.output("generated.pdf")

print("PDF 파일이 생성되었습니다.")

위 코드는 간단한 텍스트를 포함한 새 PDF 파일을 생성합니다.

6. PDF에 이미지 추가

이미지를 추가하여 PDF를 더욱 시각적으로 구성할 수 있습니다.

예제: PDF에 이미지 추가

# 이미지 추가
pdf.add_page()
pdf.set_font("Arial", size=12)
pdf.cell(200, 10, txt="이 페이지에는 이미지가 포함됩니다.", ln=True, align="C")

pdf.image("example.jpg", x=50, y=50, w=100, h=100)
pdf.output("pdf_with_image.pdf")

print("이미지가 포함된 PDF 파일이 생성되었습니다.")

위 코드는 이미지 파일을 PDF 파일에 추가합니다.

7. 전체 예제: PDF 병합 및 생성

다음은 PDF 병합 후 새 텍스트 페이지를 추가하는 전체 예제입니다.

from PyPDF2 import PdfMerger
from fpdf import FPDF

# PDF 병합
merger = PdfMerger()
merger.append("file1.pdf")
merger.append("file2.pdf")
merger.write("merged.pdf")
merger.close()

# 병합된 PDF에 새 페이지 추가
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
pdf.cell(200, 10, txt="PDF 병합 완료", ln=True, align="C")
pdf.cell(200, 10, txt="이 페이지는 병합 후 추가되었습니다.", ln=True, align="L")

# 최종 PDF 저장
pdf.output("final_document.pdf")

print("최종 PDF 파일이 생성되었습니다.")

마무리

이번 글에서는 PyPDF2와 fpdf를 사용해 PDF 파일을 읽고, 병합하고, 분리하며, 새 PDF 파일을 생성하는 방법을 알아보았습니다.

PDF 자동화는 업무에서 반복 작업을 줄이고 효율성을 높이는 데 매우 유용합니다.

 

실습을 통해 자신만의 PDF 관리 프로그램을 만들어보세요!