我正在尝试使工作中的某些流程自动化。我能够从列表中合并PDF,并能够将合并的PDF创建加密的PDF。现在,我坚持尝试获取现有的加密PDF,对其进行解密并将其与列表的其他成员合并。每次解密并尝试与未加密的PDF合并时,我的错误消息均显示为“文件尚未解密”。下面是我的代码,直到需要合并加密和未加密的PDF为止。
PyPDF2仅允许您使用解密方法读取加密的PDF吗?是否应该为加密的PDF创建一个新列表并将其附加到该列表?是否可以解密PDF,复制其内容并创建新的未加密文件?任何帮助将非常感激。谢谢。
import os
import PyPDF2
os.chdir(r'C:\Users\######\Downloads')
#Here I merge Two dummy PDFs
pdfs = ['Gateway Parking Form.pdf', 'sample.pdf']
merger = PyPDF2.PdfFileMerger()
for pdf in pdfs:
merger.append(pdf)
merger.write("result.pdf")
merger.close
#Here I copy the contents of the merged file to create a new encrypted PDF
pdfFile = open("result.pdf", "rb")
pdfReader = PyPDF2.PdfFileReader(pdfFile)
pdfWriter = PyPDF2.PdfFileWriter()
for pageNum in range(pdfReader.numPages):
pdfWriter.addPage(pdfReader.getPage(pageNum))
pdfWriter.encrypt("HelloDude")
resultPdf = open("result_Client.pdf", "wb")
pdfWriter.write(resultPdf)
pdfFile.close()
resultPdf.close()
#Here I WANT to decrypt the password-protected PDF and merge it with two dummy PDFs
pdfs = ['Gateway Parking Form.pdf', 'sample.pdf', "result_Client.pdf"]
for pdf in pdfs:
pdfFile = open(pdf, "rb")
reader = PyPDF2.PdfFileReader(pdfFile)
writer = PyPDF2.PdfFileWriter()
if reader.isEncrypted:
reader.decrypt("HelloDude")
答案 0 :(得分:0)
def decryption(input_name,output_name,password):
pdfFile = open(input_name, "rb")
reader = PyPDF2.PdfFileReader(pdfFile)
writer = PyPDF2.PdfFileWriter()
if reader.isEncrypted:
reader.decrypt(password)
for pageNum in range(reader.numPages):
writer.addPage(reader.getPage(pageNum))
resultPdf = open(output_name, "wb")
writer.write(resultPdf)
pdfFile.close()
resultPdf.close()