pdf添加多行水印,python pdf加水印

  pdf添加多行水印,python pdf加水印

  给PDF文件加水印的时候,还会一页一页手动添加吗?本文给大家带来一个更方便的方法,就是用2行Python代码实现。有兴趣的朋友可以学习一下。

  00-1010 1.导言2。指定水印内容输出到pdf文件2.1模块安装2.2思路2.3代码示例3。水印内容批量输出到pdf文件3.1模块安装3.2思路3.3代码示例4。摘要

  

目录

 

  屌丝:鱼哥新年快乐!

  小雨:如果你不想去三宝堂,就告诉我……

  屌丝:别这么直接,都过年了……

  鱼:别让它没用。就凭你这点小心思,我也没法知道。

  小屌丝:…

  小屌丝:鄙视它,只要能帮我解决问题,我鄙视三联!

  小雨:……没事,那你告诉我,怎么了?

  屌丝:就……就……

  鱼:你能不能不要这么粗鲁,马上冷静下来!

  屌丝:就是,能不能帮我给pdf文件加水印……

  鱼:就在这里…

  屌丝:对,就是它!

  鱼:不要做出这么天真可爱的小脸。

  屌丝:谁曾经不是小可爱?

  鱼:该死,坏了。我修不好!

  屌丝:Ness ~ ~

  今天,我们将分享如何为pdf文档添加水印。

  小鱼分享图片添加水印的方法很简单,直接给水印模块添加_watermark即可。

  不知道的可以看这个《Python3,2行代码添加水印,发朋友圈,图片再也不怕被盗了!!!》

  但是,要给pdf文件添加水印,还需要另外两个库,即:

  reportlabpikepdf的两个库有什么特别的‘魔力’,可以给pdf加水印?

  别走开,以后再来!

  

1、 引言

 

  

2、指定水印内容输出到pdf文件

 

  因为reportlab库是python的第三方库,所以,

  第一步是安装:

  pip安装报告实验室

  其他安装方式:

  《Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!》

  《Python3:我低调的只用一行代码,就导入Python所有库!!》

  

2.1 模块安装

 

  1.要设置水印字体填充:

  所以,我们需要设置一些关于字体的基本信息,比如:

  Content:水印文本内容文件名:导出的水印文件名width:画布宽度,单位:mmheight:画布高度,公司:mmfont:对应注册的字体代码fontsize:字体大小角度:旋转角度text_stroke_color_rgb:文本轮廓rgb颜色Text _ fill _ color _ rgb 3360文本填充rgb颜色Text _ fill _ alpha 3360文本透明度2 .将水印字体输出到pdf文档

  画布。Canvas.save()方法将输出字体保存到pdf文档。

  

2.2 思路

 

  直接装载代码:

  # -*-编码:utf-8 -*-

  # @时间: 2022-02-10

  # @作者:卡尔_DJ

  从输入导入联合,元组

  来自reportla

  b.lib import units

  from reportlab.pdfgen import canvas

  from reportlab.pdfbase import pdfmetrics

  from reportlab.pdfbase.ttfonts import TTFont

  pdfmetrics.registerFont(TTFont(msyh,r./msyh.ttc))

  用于生成包含content文字内容的水印pdf文件

  content: 水印文本内容

  filename: 导出的水印文件名

  width: 画布宽度,单位:mm

  height: 画布高度,单位:mm

  font: 对应注册的字体代号

  fontsize: 字号大小

  angle: 旋转角度

  text_stroke_color_rgb: 文字轮廓rgb色

  text_fill_color_rgb: 文字填充rgb色

  text_fill_alpha: 文字透明度

  def create_wartmark(content:str,

   filename:str,

   width: Union[int, float],

   height: Union[int, float],

   font: str,

   fontsize: int,

   angle: Union[int, float] = 45,

   text_stroke_color_rgb: Tuple[int, int, int] = (0, 0, 0),

   text_fill_color_rgb: Tuple[int, int, int] = (0, 0, 0),

   text_fill_alpha: Union[int, float] = 1) -> None:

   #创建PDF文件,指定文件名及尺寸,以像素为单位

   c = canvas.Canvas(f{filename}.pdf,pagesize=(width*units.mm,height*units.mm))

   #画布平移保证文字完整性

   c.translate(0.1*width*units.mm,0.1*height*units.mm)

   #设置旋转角度

   c.rotate(angle)

   #设置字体大小

   c.setFont(font,fontsize)

   #设置字体轮廓彩色

   c.setStrokeColorRGB(*text_stroke_color_rgb)

   #设置填充色

   c.setFillColorRGB(*text_fill_color_rgb)

   #设置字体透明度

   c.setFillAlpha(text_fill_alpha)

   #绘制字体内容

   c.drawString(0,0,content)

   #保存文件

   c.save()

  create_wartmark(content=关注carl_奕然,学习更多有趣的python知识,

   filename=小鱼watermarkDemo,

   width=200,

   height=200,

   font=msyh,

   fontsize=35,

   text_fill_alpha=0.3)

  运行结果:

  

 

  

 

  

3、水印内容批量输出到pdf文件

 

  

 

  

3.1 模块安装

 

  因为pikepdf库是python的第三方库,所以,

  第一步,安装:

  

pip install pikepdf

 

  其他方式安装:

  《Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!》

  《Python3:我低调的只用一行代码,就导入Python所有库!!》

  小屌丝:鱼哥,为什么我们还需要安装pikepdf这个模块?

  小鱼:因为我们要把已生成的pdf水印覆盖到目标pdf文档。

  小屌丝:你的意思是,上面的代码,就仅仅是生成一个水印文档,其他的没有了?

  小鱼:对的,你可以使用上面已生成的pdf水印文档,也可以随便找一个pdf文档作为水印文档,去覆盖到目标pdf文档。

  小屌丝:还可以这么玩?

  小鱼:对的,待会给你演示。

  

 

  

3.2 思路

 

  1、需要准备pdf文件:

  

  • 目标pdf文件

  • 已生成水印的pdf文件

 

  2、我们把已生成的pdf文档来覆盖到目标pdf文档,同样,需要设置的参数:

  

  • target_pdf_path:目标pdf文件路径+文件名

  • watermark_pad_path:水印pdf文件路径+文件名

  • nrow:水印平铺的行数

  • ncol:水印平铺的列数

  • skip_pages:需要跳过不添加水印的页数

 

  目标pdf文档:

  

 

  

 

  

3.3 代码示例

 

  

  # -*- coding:utf-8 -*-  # @Time : 2022-02-10  # @Author : carl_DJ  from typing import List  from pikepdf import Pdf,Page,Rectangle  向目标pdf文件批量添加水印  target_pdf_path:目标pdf文件路径+文件名  watermark_pad_path:水印pdf文件路径+文件名  nrow:水印平铺的行数  ncol:水印平铺的列数  skip_pages:需要跳过不添加水印的页数  def add_watemark(target_pdf_path:str,   watermark_pdf_path:str,   nrow:int,   ncol:int,   skip_pages:List[int] = []) -> None:   #选择需要添加水印的pdf文件   target_pdf = Pdf.open(target_pdf_path)   #读取水印pdf文件并提取水印   watermark_pdf = Pdf.open(watermark_pdf_path)   watermark_page = watermark_pdf.pages[0]   #遍历目标pdf文件中的所有页,批量添加水印   for idx,target_page in enumerate(target_pdf.pages):   for x in range(ncol):   for y in range(nrow):   #向目标页指定范围添加水印   target_page.add_overlay(watermark_page,   Rectangle(target_page.trimbox[2] * x / ncol,   target_page.trimbox[3] * y / nrow,   target_page.trimbox[2] * (x + 1) / ncol,   target_page.trimbox[3] * (y + 1) / nrow   ))   #保存PDF文件,同时对pdf文件进行重命名,从文件名第7位置写入后缀名   target_pdf.save(target_pdf_path[:6] + _已添加水印.pdf)  add_watemark(target_pdf_path=跟小鱼学水印.pdf,   #把生成的水印示例,添加到目标水印文件中   watermark_pdf_path=小鱼watermarkDemo.pdf,   nrow = 3,   ncol = 2 ,   skip_pages= [0])

 

  运行结果:

  

 

  

 

  

4、总结

 

  写到这里,今天的分享就差不多快结束了。

  今天主要是对reportlab 库和pikepdf库进行了拓展,让添加水印,不在花钱。

  以上就是2行Python代码实现给pdf文件添加水印的详细内容,更多关于Python pdf添加水印的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • php读取pdf数据,php pdf读取
  • php读取pdf数据,php pdf读取,PHP中使用mpdf 导出PDF文件的实现方法
  • kotlon协程,深入理解kotlin协程pdf,一文彻底搞懂Kotlin中的协程
  • 深入解析C#(第4版),深入解析css pdf,深入解析contentWindow, contentDocument
  • java 反射机制原理与用法详解视频,java 反射机制原理与用法详解pdf
  • java 反射机制原理与用法详解视频,java 反射机制原理与用法详解pdf,Java 反射机制原理与用法详解
  • ,,Java使用iTextPDF生成PDF文件的实现方法
  • ,,Python利用PyMuPDF实现PDF文件处理
  • 漫画算法小灰的算法之旅pdf,漫画算法2-小灰的算法进阶
  • devops和自动化运维实践 PDF,devops思想在运维方面的具体实践
  • pdf如何去除水印,pdf去水印的三种方法
  • 把a4的内容打印成a3小册子,a4的pdf文档如何打印成a3
  • nlp自然语言处理入门pdf,精通python自然语言处理 pdf
  • 容器docker基本操作,每天5分钟玩转docker容器技术 pdf
  • sklearn中文手册pdf下载,sklearn库模块及函数
  • 留言与评论(共有 条评论)
       
    验证码: