用python加密PDF

Fel*_*ker 3 python pdf encryption

有没有可能和方法来加密python中的PDF文件?一种可能是压缩PDF,但是还有另一种吗?感谢您的帮助,Felix

小智 9

您可以使用PyPDF2

from pyPDF2 import PdfFileReader, PdfFileWriter
with open("input.pdf", "rb") as in_file:
    input_pdf = PdfFileReader(in_file)

output_pdf = PdfFileWriter()
output_pdf.appendPagesFromReader(input_pdf)
output_pdf.encrypt("password")

with open("output.pdf", "wb") as out_file:
        output_pdf.write(out_file)
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看PdfFileWriter docs


Sid*_*har 6

您可以使用PyPDF2

import PyPDF2
pdfFile = open('input.pdf', 'rb')
# Create reader and writer object
pdfReader = PyPDF2.PdfFileReader(pdfFile)
pdfWriter = PyPDF2.PdfFileWriter()
# Add all pages to writer (accepted answer results into blank pages)
for pageNum in range(pdfReader.numPages):
    pdfWriter.addPage(pdfReader.getPage(pageNum))
# Encrypt with your password
pdfWriter.encrypt('password')
# Write it to an output file. (you can delete unencrypted version now)
resultPdf = open('encrypted_output.pdf', 'wb')
pdfWriter.write(resultPdf)
resultPdf.close()
Run Code Online (Sandbox Code Playgroud)


Asa*_*auf 5

PikePdf 是 Python 对 QPDF 的改编,是迄今为止更好的选择。如果您的文件包含非英语语言的文本,这将特别有用。

from pikepdf import Pdf
pdf = Pdf.open(path/to/file)    
pdf.save('output_filename.pdf', encryption=pikepdf.Encryption(owner=password, user=password, R=4)) 
# you can change the R from 4 to 6 for 256 aes encryption
pdf.close()
Run Code Online (Sandbox Code Playgroud)