반응형
문서 작업을 하다 보면 여러 PDF 파일을 하나로 병합하거나, 하나의 큰 PDF 파일을 여러 부분으로 나누어야 할 필요가 종종 생깁니다. 이러한 작업을 수동으로 하기에는 시간이 많이 소요되고 번거로울 수 있습니다. Python과 PyPDF2 라이브러리를 이용하면 이러한 작업을 간단하게 자동화할 수 있습니다. 본 글에서는 Python으로 PDF 파일을 병합하고 분할하는 간단한 프로그램을 만드는 방법을 소개합니다.
PyPDF2 설치
먼저, PyPDF2 라이브러리가 설치되어 있어야 합니다. 아직 설치하지 않았다면, 다음 명령어를 통해 설치할 수 있습니다:
pip install PyPDF2
PDF 병합하기
여러 PDF 파일을 순서대로 하나의 파일로 병합하는 프로그램을 만들어보겠습니다. 이 프로그램은 명령줄 인수로 여러 PDF 파일의 경로를 받아, 지정된 출력 파일에 병합하여 저장합니다.
import sys
from PyPDF2 import PdfFileReader, PdfFileWriter
def merge_pdfs(paths, output):
pdf_writer = PdfFileWriter()
for path in paths:
pdf_reader = PdfFileReader(path)
for page in range(pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(page))
with open(output, 'wb') as out_file:
pdf_writer.write(out_file)
if __name__ == '__main__':
paths = sys.argv[1:-1]
output = sys.argv[-1]
merge_pdfs(paths, output)
사용 예시:
python merge_pdfs.py file1.pdf file2.pdf file3.pdf merged.pdf
위 예시는 file1.pdf, file2.pdf, file3.pdf를 순서대로 병합하여 merged.pdf에 저장합니다.
PDF 분할하기
이제 하나의 PDF 파일을 여러 개의 파일로 분할하는 프로그램을 만들어보겠습니다. 각 페이지를 별도의 PDF 파일로 저장하는 방식으로 작동합니다.
from PyPDF2 import PdfFileReader, PdfFileWriter
def split_pdf(path, output_dir):
pdf_reader = PdfFileReader(path)
for page in range(pdf_reader.getNumPages()):
pdf_writer = PdfFileWriter()
pdf_writer.addPage(pdf_reader.getPage(page))
output_filename = f'{output_dir}/page_{page + 1}.pdf'
with open(output_filename, 'wb') as out_file:
pdf_writer.write(out_file)
if __name__ == '__main__':
import sys
path = sys.argv[1]
output_dir = sys.argv[2]
split_pdf(path, output_dir)
사용 예시:
python split_pdf.py example.pdf output_folder
위 예시는 example.pdf의 각 페이지를 output_folder 디렉토리에 page_1.pdf, page_2.pdf, ...와 같은 형식으로 저장합니다.
반응형