python对PDF⽂件加密、设置只读、不可编辑pypdf2问题:
想对PDF加密,设置只读权限,让别⼈不能修改我的PDF。
给PDF添加⽔印后,如何设置只读权限呢?
(关于PDF添加⽔印,可以看之前的⽂章:
答案是:加密。
所以这⾥⽤到了pypdf2的加密功能。
怎么对文件夹加密但是pypdf2的加密功能只能设置密码,是不能设置对应的权限的(⽐如编辑、复印等权限)。
所以这⾥修改了pypdf2的源代码来简单的实现PDF⽂件不可编辑。
具体操作如下。
1.pypdf2如下路径,有⼀个pdf.py
2.修改pdy.py。到P=-1,修改为P=-3904
(这⾥的P代表权限,-3904表⽰除了阅读外,关闭其他所有权限。更多的参数设置我还没有查,可以⾃⾏搜索。)
修改P后,然后正常使⽤pypdf2的加密函数就可以了。
加密代码如下:
from PyPDF2 import PdfFileWriter, PdfFileReader
#给pdf批量加⽔印
#input_pdf = 'y8.PDF',输⼊⽂件
#output = 'y8_q1.pdf',输出pdf
#watermark = 's.pdf'⽔印⽂件
def create_watermark(input_pdf, output, watermark):
watermark_obj = PdfFileReader(watermark)
watermark_page = Page(0)
pdf_reader = PdfFileReader(input_pdf)
pdf_writer = PdfFileWriter()
# 给所有页⾯添加⽔印
for page_num in range(NumPages()):
print("page:",page_num)
page = Page(page_num)
if page_num%2 == 0:
pdf_writer.addPage(page)
###这⼀⾏是加密,如果只想加密,上⾯的添加⽔印都可以删除。
pt(user_pwd="",owner_pwd="xx1234") # 设置pdf密码 # pdf_writer.
# pt()
with open(output, 'wb') as out:
pdf_writer.write(out)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论