from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from PyPDF2 import PdfFileWriter, PdfFileReader
2.导入模块之后就是要使用canvas模块来绘制出文件水印的图像了,需要先调用TTFont()方法来将需要使用到的字体文件加载进来。然后就是去设置一下水印的坐标、字体、大小、颜色、倾斜角度等等参数,代码示例如下所示:
cans = canvas.Canvas('water_back.pdf', pagesize=(21 * cm, 29.7 * cm))
cans.setFont('songti', 23)
cans.setFillColorRGB(0.5, 0.5,0.5)
cans.rotate(45)
cans.drawString(-7 * cm, 0 * cm, ’水印文字’)
cans.save()
3.以上的代码就是打开了一个pdf文件并且在里面绘制了文字水印,但是一个pdf文件可能是有很多页的,所以接下来还需要将pdf文件之中的每一页都给读取出来然后添加文字水印,详细的代码示例如下所示:
water = PdfFileReader(water_pdf)
water_page = water.getPage(0)
for page in range(pdf.getNumPages()):
pdf_page = pdf.getPage(page)
pdf_page.mergePage(water_page)
pdf_writer.addPage(pdf_page)
output_file = open(output_pdf, 'wb')
pdf_writer.write(output_file)
以上就是python向pdf文件之中添加水印的全部过程了,代码方法里面的所有参数都需要根据自己实际需要改成对应的文件路径就可以了,output就是pdf文件添加完水印之后保存在目录中的文件路径。
使用第三方库
官方文档:pymupdf.readthedocs.io/en/latest/
提取图片的整体逻辑如下:
将每一页转换为一张张图片
安装pdf2image, github:github.com/Belval/pdf2…
安装:
使用库: github.com/2Dou/waterm…
步骤:
1.获得一个带水印pdf文件
1.1在图片添加水印,图片插入到word,word保存为pdf
1.2python处理:参考
github.com/2Dou/waterm…
mp.weixin.qq.com/s/_oJA6lbsd…
2.将水印pdf文件合并到源目标pdf文件的每一页
法1,直接在word,插入文本框,旋转,设置无边框,注意设置背景透明,然后复制多个。导出为pdf。
法2,word本身自己的增加水印,设计-水印-自定义文字或图片。缺点是只能是单个水印。
缺点是水印在内容pdf上方,如果设置过大,颜色不太透明,会遮挡内容。
解密:并不是破解,而是在已知密码的情况下解密
作者:秦与商
链接:https://juejin.cn/post/7069582991982329893
本文主要介绍如何通过Python在图片上的指定位置添加文字,主要利用两个库OpenCV和PIL。
1.安装OpenCV
pip install opencv-python
2.利用putText方法来实现在图片的指定位置添加文字
putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
在使用putText方法在图片上添加文字的时, 无法直接添加中文 和 无法导入字体文件 ,接下来我们利用另一库PIL来解决这个问题。
1.安装PIL库
pip install Pillow
2.添加文字信息
通过加载ttc格式的字体文件,就可以设置显示文字的字体。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)