검은 천사의 블로그

PDF문서합치기

파이썬2024. 1. 25. 11:45

* 참고: https://pikepdf.readthedocs.io/en/latest/topics/pages.html

# pdf 문서 합치기 
# 제작: 2024-01-25
# 마지막 개정: 2024-01-25
# 필요 라이브러리 : pikepdf, glob
# pip install pikepdf로 설치할 수 있다.

from pikepdf import Pdf
from glob import glob

print("여러 PDF문서를 하나로 합치기 위한 프로그램입니다.")
print("암호가 걸려 있는 pdf문서는 암호를 먼저 해제한 후 진행해야 합니다.")
print("현재 폴더내 동일한 이름을 가진 pdf가 있을 경우 해당 문서를 덮어쓰며, 이전 pdf문서는 삭제됩니다.")


pdf = Pdf.new()
version = pdf.pdf_version
merged_file_name = input("저장할 파일명을 입력하시오.(확장자 제외):")
merged_file_name = merged_file_name + ".pdf"
target_file = []

for file in glob("*.pdf"):
    src = Pdf.open(file)
    target_file.append(file)
    version = max(version, src.pdf_version)
    pdf.pages.extend(src.pages)

print("\n대상 pdf문서 및 합칠 순서는 아래와 같습니다.")
for l in target_file:
    print(l)

pdf.remove_unreferenced_resources()
pdf.save(merged_file_name, min_version=version)

print("\n")
print("{0}개의 문서를 {1}으(로) 저장했습니다.".format(len(target_file), merged_file_name))
# print("{0}으(로) 저장 성공했습니다." .format(merged_file_name))
# print("총 {0}개의 문서를 합쳤습니다." .format(len(target_file)))