PDF는 문서 공유와 저장에서 널리 사용되는 형식입니다.
파이썬의 PyPDF2와 fpdf 라이브러리를 사용하면 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.pdf
와 file2.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 관리 프로그램을 만들어보세요!