天天看点

还在研究pdf怎么加水印?你用python的同事早已下班了还在研究pdf怎么加水印?你用python的同事早已下班了

还在研究pdf怎么加水印?你用python的同事早已下班了

利用Python能够在office办公时干很多事情,特别是要处理一些简单而重复的工作,这个时候选择python来帮你解决一定是再适合不过了。今天我们来讲一个使用小技巧,用python给pdf文件加水印。

废话不多讲,直接上代码后再来解释。

"""
example - 给PDF文件添加水印

Author: 码农邓翔宇
Date: 2021/8/12
"""
import PyPDF2 # 用到三方库PyPDF2,安装命令,打开pycham左下端终端Terminal,输入命令pip install PyPDF2,安装城后就可以用
from PyPDF2.pdf import PageObject       

reader1 = PyPDF2.PdfFileReader('resources/XGBoost.pdf')      # 创建一个PdfFileReader对象,目的是将文件中的内容读出来,属性是你要修改的pdf文件的相对路径或者绝对路径
reader2 = PyPDF2.PdfFileReader('resources/watermark.pdf')    # 这里这里是一个设置好的没有内容只有水印效果的pdf文件
writer = PyPDF2.PdfFileWriter()                             #  创建一个可写的PdfFileWriter对象,目的是用来存处理好的pdf内容

watermark_page = reader2.getPage(0)                   # 水印文件中只有一页。就取出第一页的内容
for page_num in range(reader1.numPages):              # 遍历原始文件的每一页,numPages是pdf的页数
    current_page = reader1.getPage(page_num)  # type: PageObject   
                                                 # 上一行的type注释那里请你加上,那是声明current_page的对象类型的
    current_page.mergePage(watermark_page)    # current_page是每次取出来的一页内容,现在我们将它与之前的水印内容合并
    writer.addPage(current_page)              # 合并后将新处理好的每一页都写到新的可写对象writer中

with open('resources/XGBoost-watermarked.pdf', 'wb') as file:     # 将writer对象中的内容保存到这个文件pdf中,搞定
    writer.write(file)
           

可能你觉得加个水印没必要写这么代码,但是你不知道是,如果要让你给这样的100个文件加上水印呢?我在这个代码上稍作改动就搞定了,难道你也是一个个改?

我觉得我注释应该对每一步操作解释很清楚了,还有不懂的私信或者在评论区留下的问题。我来为你解答。

如果对你有帮助,不要忘记点赞、收藏加关注哦!