1、创建水印PDF。

1)、创建文字水印pdf文件

代码:#encoding=utf-8

#author: walker

#date: 2014-03-17

#function: 创建文字水印pdf

from reportlab.pdfgen import canvas

from reportlab.lib.units import cm

def create_watermark(content):

#默认大小为21cm*29.7cm

c = canvas.Canvas("mark.pdf", pagesize = (30*cm, 30*cm))

#移动坐标原点(坐标系左下为(0,0))

c.translate(10*cm, 5*cm)

#设置字体

c.setFont("Helvetica", 80)

#指定描边的颜色

c.setStrokeColorRGB(0, 1, 0)

#指定填充颜色

c.setFillColorRGB(0, 1, 0)

#画一个矩形

c.rect(cm, cm, 7*cm, 17*cm, fill=1)

#旋转45度,坐标系被旋转

c.rotate(45)

#指定填充颜色

c.setFillColorRGB(0.6, 0, 0)

#设置透明度,1为不透明

c.setFillAlpha(0.3)

#画几个文本,注意坐标系旋转的影响

c.drawString(3*cm, 0*cm, content)

c.setFillAlpha(0.6)

c.drawString(6*cm, 3*cm, content)

c.setFillAlpha(1)

c.drawString(9*cm, 6*cm, content)

#关闭并保存pdf文件

c.save()

create_watermark('walker')

效果图:

2)、创建图片水印pdf。

代码:#encoding=utf-8

#author: walker

#date: 2014-03-17

#function: 创建图片水印pdf

from reportlab.pdfgen import canvas

from reportlab.lib.units import cm

def create_watermark(f_jpg):

f_pdf = 'mark.pdf'

w_pdf = 20*cm

h_pdf = 20*cm

c = canvas.Canvas(f_pdf, pagesize = (w_pdf, h_pdf))

c.setFillAlpha(0.3) #设置透明度

print c.drawImage(f_jpg, 7*cm, 7*cm, 6*cm, 6*cm)    #这里的单位是物理尺寸

c.save()

create_watermark('eg.png')

效果图:

2、添加水印。

代码:#encoding=utf-8

#author: walker

#date: 2014-03-18

#function:给pdf添加水印

from PyPDF2 import PdfFileWriter, PdfFileReader

from reportlab.pdfgen import canvas

#所有路径为绝对路径

def add_watermark(pdf_file_in, pdf_file_mark, pdf_file_out):

pdf_output = PdfFileWriter()

input_stream = file(pdf_file_in, 'rb')

pdf_input = PdfFileReader(input_stream)

# PDF文件被加密了

if pdf_input.getIsEncrypted():

print '该PDF文件被加密了.'

# 尝试用空密码解密

try:

pdf_input.decrypt('')

except Exception, e:

print '尝试用空密码解密失败.'

return False

else:

print '用空密码解密成功.'

# 获取PDF文件的页数

pageNum = pdf_input.getNumPages()

#读入水印pdf文件

pdf_watermark = PdfFileReader(file(pdf_file_mark, 'rb'))

# 给每一页打水印

for i in range(pageNum):

page = pdf_input.getPage(i)

page.mergePage(pdf_watermark.getPage(0))

page.compressContentStreams()   #压缩内容

pdf_output.addPage(page)

效果图:

3、这种方式唯一的缺点就是效率极低,不适合大批量文件处理。用PDFlib处理效率会比这种方式高几十倍。可参考:用PDFlib给PDF添加水印(Python)

*** walker ***

python添加文字水印中间旋转45度,Python添加pdf水印相关推荐

  1. python添加文字水印中间旋转45度_pythonpdf添加水印

    0.用到两个扩展模块:ReportLab.PyPDF2. 1.创建水印PDF. 1).创建文字水印pdf文件 代码: #encoding=utf-8 #author: walker #date: 20 ...

  2. HTML5 Canvas 绘制旋转45度佛教万字

    效果如下: 代码如下: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Cont ...

  3. 怎么将图片旋转45度?

    怎么将图片旋转45度?相信很多小伙伴在学习和工作的过程中,时常会需要将图片旋转45度,这个时候很多人习惯使用word和美图秀秀操作,或者使用系统自带的编辑器处理,但他们可能会很容易的把图片旋转90度, ...

  4. Python使用Image函数批量给图片添加全屏45度透明logo图片水印

    from PIL import Image from glob import glob import os #找到文件内jpg和PNG后缀的文件 image_path = glob('*[jpg,pn ...

  5. div旋转45度_为什么不要买旋转式电动牙刷:欧乐B电动牙刷D12开箱与体验

    引言 众所周知,电动牙刷主要分为声波式与旋转式.自从米家声波电动牙刷发布以来,我一直使用它作为宿舍主力牙刷,每次长假回家也会不嫌麻烦地带上它,不知不觉已经过去了3年,它并没有什么质量问题,仅仅是出现过 ...

  6. python将矩阵顺时针旋转90度_在Python中将方形矩阵逆时针旋转90度的程序

    假设我们有一个正方形矩阵,我们必须将其逆时针旋转90度.147 258 369 那么输出将是789 456 1个23 为了解决这个问题,我们将遵循以下步骤-如果矩阵为空,则返回一个空白列表 n:=矩阵 ...

  7. 苹果手机怎么在照片上添加文字_给微信拍照的照片添加文字,调整后期效果,手机两步完成...

    给微信拍照的照片添加文字,调整后期效果,手机两步完成! 给微信拍照的照片添加上文字,并调整后期效果非常的简单哦!简单几步立马变时尚大片哦! 除了直接添加上后期效果和文字,还能够使用一些模版,增加不同的 ...

  8. 苹果手机怎么在照片上添加文字_给微信拍照的照片添加文字,调整后期效果,手机两步搞定!...

    给微信拍照的照片添加上文字,并调整后期效果非常的简单哦!添加文字一键搞定,添加滤镜.纹理以及调整图片的各种参数,也都是一键搞定哦,非常的方便的! 除了直接添加上后期效果和文字,还能够使用一些模版,增加 ...

  9. css旋转45度_css 渐变过渡2D

    一.过渡属性 transition css3的transition允许css的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标划过.单击.获得焦点或对元素任何改变中触发,并圆滑地以动画效果改变C ...

最新文章

  1. PHP后期静态绑定概念和用法
  2. MATLAB从入门到精通-Matlab R2020b新功能 | 子标题和标题/标签对齐功能!
  3. 几个网页制作的小技巧
  4. 阅读APP,为什么都开始抢kindle生意了?
  5. 动态规划——莱文斯坦距离
  6. [转]spring入门(六)【springMVC中各数据源配置】
  7. websocket有没有可能取代ajax
  8. Python常用的一些库(仅供参考)
  9. 安装LuaRocks
  10. 暗影精灵3等游戏本设置风扇静音
  11. uniapp app真机测试
  12. 关于IntelliJ IDEA
  13. 大逃杀吃鸡毒圈的制作
  14. 傻瓜式制作纯净版win10启动盘
  15. JAVA开发基础之使用IDEA导出JAR包
  16. 华为云灾备,让数据风险无处遁形
  17. JPA二:FindBy和JPQL
  18. 二、数据集与数据类型【R与统计】
  19. 根节点,子节点,叶节点
  20. 因男友迟迟没升P8分手!

热门文章

  1. Java后端处理video快进快退播放以及断点续传的原理和代码
  2. 架构(B站尚硅谷大数据项目实践 电影推荐系统概述)
  3. intel编译器免费下载
  4. 高性能国产化信号处理平台国产DSP+FPGA+AI NPU安路紫光方案
  5. 联想微型计算机m4350q升级,细节:联想M4350q小巧到极致_联想ThinkCentre台式电脑_台式电脑评测-中关村在线...
  6. linux c 语言uint32 t,Linux中uint16_t
  7. android apk对遥控器支持,Android中关于APK对遥控器支持的修改
  8. 商标图形也会侵权?商标侵权如何界定
  9. C语言中sort函数的用处
  10. python 常用win32api 后台截图 后台鼠标 后台键盘 后台输入文字 剪切板