批量给pdf增加水印
批量给pdf增加水
创建水印pdf文件
from reportlab.pdfgen import canvas from reportlab.lib.units import cm from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont from PyPDF2 import PdfFileWriter,PdfFileReaderpdfmetrics.registerFont(TTFont('song', 'C:/Windows/Fonts/simsun.ttc'))#宋体def create_watermark(content):#默认大小为21cm*29.7cmc = canvas.Canvas('Watermark.pdf', pagesize = (30*cm, 30*cm)) # c.translate(10*cm, 10*cm) #移动坐标原点(坐标系左下为(0,0))) c.setFont('song',10)#设置字体为宋体,大小22号c.setFillColorRGB(0.5,0.5,0.5)#灰色 c.drawString(3*cm, 28.5*cm, content)c.save()#关闭并保存pdf文件
需要添加水印的文件
PyPDF2.PdfFileReader(stream,strict = True,warndest = None,overwriteWarnings = True)
参考自:https://blog.csdn.net/xingxtao/article/details/79056341
初始化一个 PdfFileReader 对象,此操作可能需要一些时间,因为 PDF 流的交叉引用表被读入内存。
参数:
stream:File 对象或支持与 File 对象类似的标准读取和查找方法的对象,也可以是表示 PDF 文件路径的字符串。
strict(bool): 确定是否应该警告用户所用的问题,也导致一些可纠正的问题是致命的,默认是 True
warndest : 记录警告的目标(默认是 sys.stderr)PdfFileWriter
这个类支持 PDF 文件,给出其他类生成的页面。
def add_watermark2pdf(input_pdf,output_pdf,watermark_pdf):watermark = PdfFileReader(watermark_pdf)#读取带有水印的pdf文件watermark_page = watermark.getPage(0)#读取水印pdf的首页pdf = PdfFileReader(input_pdf,strict=False)pdf_writer = PdfFileWriter()for page in range(pdf.getNumPages()):print('正在处理第%s页'%page)pdf_page = pdf.getPage(page)#获取需要添加水印文件的pdf相应页码的内容if page < int(pdf.getNumPages()/2):if page % 2 != 0:pdf_page.mergePage(watermark_page)#将水印和添加到pdf中#将两个页面的内容流合并为一个。从两个页面维护资源引用(即字体)。此页面的mediabox / cropbox / etc不会更改。参数页面的内容流将添加到此页面内容流的末尾,这意味着它将在此页面之后或“页面顶部”绘制。pdf_writer.addPage(pdf_page)#将合并之后的pdf添加到新的pdf中else:pdf_writer.addPage(pdf_page)else:pdf_writer.addPage(pdf_page)pdfOutputFile = open(output_pdf,'wb') # pdf_writer.encrypt('scb2018')#设置pdf密码pdf_writer.write(pdfOutputFile)pdfOutputFile.close()
调用代码
# -*- coding: utf-8 -*- """ Created on Mon May 20 16:04:52 2019@author: innduce 此程序用来给pdf文件添加水印 """ import os import shuiyin as sy#将上述两个代码保存为shuiyin.py文件 path = input('请输入需要添加水印文件的路径:') txt = input('请输入需要添加的水印文字:') sy.create_watermark(txt) filename = os.listdir(path) i = 0 for file in filename:if file[-4:] == '.pdf':#仅处理文件夹下后缀名为pdf的文档if file != 'Watermark.pdf':i += 1print('********处理第%s个文件中********'%i)sy.add_watermark2pdf(path + '\\'+ file,file + '新.pdf','Watermark.pdf')
批量给pdf增加水印相关推荐
- python pdf删除图片_【原创】python批量删除pdf图片水印(Xobject)的一种方法
1.说明: 下载到的pdf总会有一些水印,pdf文件水印添加方式除了acrobat adobe自带的以外,还有很多,所以去除水印方法也很多,这里介绍的也只是一种适用python批量删除图片水印Xobj ...
- 怎么批量给PDF加水印?
如何批量给PDF加水印?随着pdf文件格式的广泛应用,学习一些关于pdf的操作就变得很有必要,比如pdf文件的编辑.转换等,除了这两个,还有一个大家使用比较多的操作,就是给pdf文件添加水印.pdf文 ...
- 如何简简单单批量给PDF加水印
PDF加水印是我们编辑PDF过程中经常会做的事情,如果只有一个PDF文件的时候,那么PDF加水印也挺简单,但是如果有很多PDF文件要一起加水印,那么如果再一个个打开编辑就显得很麻烦了.那么如何批量给P ...
- 批量给pdf加水印,pdf批量加水印方法
如何批量给pdf加水印?如今我们每个人的保护意识都很强,尤其是关于知识产权方面,pdf作为大部分正式文件的主要格式,保护pdf文件不被盗用就尤为的重要了,除了给pdf文件加密以外,还可以在pdf文件的 ...
- java pdf加水印 性能_利用java批量给pdf加水印的方法示例
前言 最近因为工作需要,要批量在pdf上加水印,但找了一圈pdf在mac下的水印工具,都不太好用,索性就用java写一个吧. 以下代码依赖itext5.3.3包,java操作pdf 依靠itext5. ...
- python pdf 加水印_Python批量给PDF加水印,10秒搞定“不可编辑”的PDF!
在日常的工作中,我们经常需要和PDF文件打交道,PDF的处理,比如修改文字.增减页面等,都是非常麻烦的,相信大家有共同的感受. 有时我们还需要对PDF添加水印,野生的PDF工具都是给单个PDF添加水印 ...
- itext根据模版生成PDF与合并多个PDF以及向已存在PDF增加水印设置权限等操作
我之前写了一篇文章讲了itext的基础操作常用方法(https://my.oschina.net/itazi/blog/1812042),但是有时涉及到比较复杂的PDF生成,手工操作就很复杂,可以使用 ...
- 批量去除PDF的水印(完全免费)
在这里给大家推荐一款好用的软件,帮助去除PDF的水印 具体步骤: 1.选择一个PDF,并将想要删除的水印添加到水印待去除列表 2.点击下一步,便可生成相应的文件,保存即可
- C#给pdf增加水印,以及Dyanmics CRM本地化部署增加水印
给PDF加水印用的插件是PdfSharp.DLL,在VS中可以直接安装. (非CRM需求者可跳过下面文字直接看代码) 如果是Dynamics CRM 本地不是想要加水印的话可以参考我的思路. 我的文档 ...
最新文章
- 云计算技术都要学什么?教你分清公有云、私有云和混合云
- Dijkstra 最短路
- access开发精要(8)-设置行高、列宽、隐藏字段,取消隐藏字段,冻结列,取消冻结列,网格线
- Mysql中explain命令查看语句执行概况
- C#相关基础知识点总结+基础代码
- Dubbo 需求、架构、使用Demo
- Android集成百度地图
- MMDetection2.XX-Backbone之ResNet源码最全解析
- 软路由:AdGuardHome + OpenWRT 让你家的网络无广告无跟踪
- oracle经典分数排名,力扣数据库题目: 分数排名(中等)
- ​smooth-signature​.js: 前端canvas实现H5带笔锋手写签名,支持PC端和移动端使用,无框架限制,Vue、React等均可使用
- w10用计算机卸载,win10系统用电脑自带的程序卸载软件的方法 (两种方法)
- HTML5 音频文件
- RxJava+Retrofit+Mvp实现购物车(没有结算页面)
- idea String报错问题
- 2019中国智能制造十大发展趋势
- MySQL锁表解决方法(转)
- 夜色总是匆匆降临...
- MySQL LIMIT 理解
- 程序员的2023发展方向