kminito / decrypt_pdf

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

"# decrypt_pdf"

PDF 파일의 '암호 해제'가 아닌, 암호가 없는 동일한 내용의 파일을 생성하는 코드. (읽기 권한 필수)

2020.11.28
pikepdf 사용시 정상 작동

import pikepdf

input_pdf = pikepdf.Pdf.open('test.pdf')
pdf = pikepdf.Pdf.new()

for n, page in enumerate(input_pdf.pages):
    pdf.pages.append(page)
    
pdf.save('test_decrypted.pdf')

2020.11.19 아래와 같이 PyPDF2를 사용할 경우

  • 대부분의 PDF 파일에서 정상 작동하나 일부에서 오류 발생 -> Acrobat 이 아닌 다른 프로그램을 사용하여 PDF 파일 작성할 경우에 오류 발생하는 것이었음

pikepdf로 변경 예정

import os
from PyPDF2 import PdfFileReader, PdfFileWriter

def decrypt_pdf(file_name):

    input_path = os.path.join(os.getcwd(), file_name)
    output_path = os.path.join(os.getcwd(), "decrypted_"+file_name)

    with open(input_path, 'rb') as input_file, open(output_path, 'wb') as output_file:
        reader = PdfFileReader(input_file)

        writer = PdfFileWriter()

        for i in range(reader.getNumPages()):
            writer.addPage(reader.getPage(i))
        
        writer.write(output_file)

if __name__ == "__main__":
    decrypt_pdf(os.sys.argv[1])

About


Languages

Language:Python 100.0%