[python] ReportLab 파일 암호화

ReportLab은 파이썬으로 PDF 문서를 생성하기 위한 강력한 도구입니다. PDF 파일은 기밀 정보를 포함할 수 있으므로 파일을 암호화하는 것이 중요합니다. 이번 포스트에서는 ReportLab을 사용하여 생성한 PDF 파일을 암호화하는 방법을 알아보겠습니다.

ReportLab 설치

ReportLab을 사용하려면 우선 ReportLab을 설치해야 합니다. 다음 명령을 사용하여 pip를 통해 ReportLab을 설치할 수 있습니다.

pip install reportlab

PDF 파일 생성

먼저 ReportLab을 사용하여 기본적인 PDF 파일을 생성하는 예제를 살펴보겠습니다.

from reportlab.pdfgen import canvas

# PDF 파일 생성
def create_pdf():
    c = canvas.Canvas("example.pdf")
    c.setFont("Helvetica", 12)
    c.drawString(100, 700, "Hello, World!")
    c.save()

create_pdf()

위의 예제 코드는 캔버스 객체를 생성하고 drawString 메서드를 사용하여 “Hello, World!”를 PDF에 추가합니다. 마지막으로 save 메서드를 호출하여 PDF 파일을 저장합니다.

ReportLab을 사용한 PDF 암호화

이제 ReportLab을 사용하여 생성한 PDF 파일을 암호화해 보겠습니다. ReportLab은 PDF 파일에 암호를 설정하기 위한 encrypt 메서드를 제공합니다.

from reportlab.platypus import SimpleDocTemplate
from reportlab.lib.userpassword import encrypt

def encrypt_pdf(input_file, output_file, password):
    doc = SimpleDocTemplate(input_file)
    doc.encrypt(password, ownerPassword=None)
    doc.write(open(output_file, "wb"))

encrypt_pdf("example.pdf", "encrypted.pdf", "password")

위의 예제 코드에서 encrypt_pdf 함수는 입력 파일 (input_file), 출력 파일 (output_file), 암호 (password)를 매개변수로 받습니다. SimpleDocTemplate을 사용하여 PDF 문서 객체를 생성하고, encrypt 메서드를 사용하여 암호를 설정합니다. write 메서드를 호출하여 암호화된 PDF를 저장합니다.

결론

이번 포스트에서는 ReportLab을 사용하여 생성한 PDF 파일을 암호화하는 방법을 살펴보았습니다. 암호화된 PDF 파일을 사용하면 기밀 정보를 안전하게 보호할 수 있습니다. ReportLab은 PDF 처리에 매우 유용한 도구이며, PDF 암호화를 포함한 다양한 기능을 제공합니다.

참고 자료