【发布时间】:2020-04-21 10:50:42
【问题描述】:
我正在尝试使工作中的一些流程自动化。我能够合并列表中的 PDF,并能够将合并的 PDF 用于创建加密的 PDF。现在,我一直在尝试获取现有的加密 PDF,对其进行解密,然后将其与列表的其他成员合并。每次我解密并尝试与未加密的 PDF 合并时,我的错误消息都会显示“文件尚未解密”。下面是我的代码,直到我需要合并加密和未加密的 PDFS。
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")
【问题讨论】:
标签: python python-3.x pdf encryption pypdf2