Python自動化辦公p14:批量完成加密及解密

#合併pdf加水印  mergePage()
from PyPDF2 import PdfFileWriter,PdfFileReader
from copy import copy

water_mark = PdfFileReader('水印哈.pdf')
water_mark_page = water_mark.getPage(0)
pdf_reader = PdfFileReader('MDSSD.pdf')
pdf_writer = PdfFileWriter()

for page in range(pdf_reader.getNumPages()):
    ori_page = pdf_reader.getPage(page)
    new_page = copy(water_mark_page)
    new_page.mergePage(ori_page)
    pdf_writer.addPage(new_page)
with open('watermarked.pdf','wb') as watermark:
    pdf_writer.write(watermark)

#加密
for page in range(pdf_reader.getNumPages()):
    pdf_writer.addPage(pdf_reader.getPage(page ))
pdf_writer.encrypt('makerbean')
with open('encrypt.pdf','wb') as out:
    pdf_writer.write(out)
#解密
pdf_reader = PdfFileReader('encrypt.pdf')
pdf_reader.decrypt('makerbean')
pdf_writer = PdfFileWriter()
for page in range(pdf_reader.getNumPages()):
    # aa =pdf_reader.getPage(page)
    pdf_writer.addPage(pdf_reader.getPage(page))

with open('decrypt.pdf','wb') as out:
    pdf_writer.write(out)

#調試過程中出現 “TypeError: addPage() missing 1 required positional argument: 'page'”錯誤
#錯誤原因:在實例化pdf_writer時忘記加括號 pdf_writer = PdfFileWriter
#出現這種提示“缺少傳遞參數”的錯誤的原因:可能是在定義函數和類時沒有實例化這個類。所以不要忘記加“括號”
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章