目录

  • 一、PyPDF2的使用
    • 1. pypdf2的使用
    • 2. pypdf2的基本应用
    • 3. 为PDF文件页面添加水印
  • 二、reportlab的使用
    • 0. 导入工具
    • 1. 创建画布
    • 2. 添加文字
    • 3. 添加图片
    • 4. 保存

导入库 PyPDF2、reportlab

一、PyPDF2的使用

PyPDF2 —— 用于操作pdf文件

from PyPDF2 import PdfFileReader, PdfFileWriter

1. pypdf2的使用

1)PdfFileReader 的用法 —— 对pdf文件进行读操作

  1. 打开pdf文件创建reader对象

    PdfFileReader('pdf文件路径')

  2. 获取页数

    文件对象.getNumPages()

  3. 获取指定的页,得到页对应的page对象

    文件对象.getPage(页下标)

2)PdfFileWriter 的用法

  1. 以写的方式打开pdf文件,创建一个只写的pdf文件对象

    PdfFileWriter() —— 创建一个空的pdf文件

  2. 添加空白页

    文件对象.addBlankPage(宽度, 高度)

  3. 添加指定页

    文件对象.addPage(指定页对象)

案例:

from PyPDF2 import PdfFileReader, PdfFileWriter# 1.PdfFileReader的用法    ——  对pdf文件进行读操作
# 1)打开pdf文件创建reader对象
file1 = PdfFileReader('files/MySQL.pdf')# 2)获取页数
count = file1.getNumPages()
print(count)# 3)获取指定的页,得到页对应的page对象
# 文件对象.getPage(页下标)
page1 = file1.getPage(1)# 2.PdfFileWriter的用法
# 1)以写的方式打开pdf文件,创建一个只写的pdf文件对象
# PdfFileWriter()       ——  创建一个空的pdf文件
file2 = PdfFileWriter()
# 2)添加空白页
file2.addBlankPage(300, 400)
# 3)添加指定页
file2.addPage(page1)# 保存文件
file2.write('files/data1.pdf')

运行效果:

2. pypdf2的基本应用

案例:

# 1.打开需要添加封面的pdf文件
files1 = PdfFileReader('files/MySQL.pdf')
# 获取总的页数
count = files1.getNumPages()# 2.准备封面对应的页面
first_page = PdfFileReader('files/water.pdf').getPage(0)# 3.创建空的pdf,先添加封面,再添加原文件的所有页
files2 = PdfFileWriter()# 添加封面页
files2.addPage(first_page)# 依次添加原文件所有页
for i in range(count):page = files1.getPage(i)files2.addPage(page)# 4.保存文件
files2.write('files/MySQL.pdf')

运行效果:

3. 为PDF文件页面添加水印

提前准备好作为水印的pdf文件

案例:给指定文件的第一页添加水印

from PyPDF2 import PdfReader, PdfWriter
# 案例:给指定文件的第一页添加水印
# 1.获取需要添加水印的页面
file1 = PdfReader('files/HEU_KMS_Activator_v20.0.0用户使用手册.pdf')
# 获取第一页
page1 = file1.getPage(0)
# 2.获取水印页
water_page = PdfReader('files/water.pdf').getPage(0)
# 3.给第一页添加水印
page1.mergePage(water_page)
# 4.将添加完水印的页添加到空的pdf文件中
file2 = PdfWriter()
file2.addPage(page1)
# 5.保存
file2.write('files/data3.pdf')

运行效果:

二、reportlab的使用

reportlab —— 画布工具,可以用来创建水印

0. 导入工具

# 构建空白画布
from reportlab.pdfgen import canvas
# 字体注册
from reportlab.pdfbase import pdfmetrics
# 字体
from reportlab.pdfbase.ttfonts import TTFont

1. 创建画布

c = canvas.Canvas('画布地址')

—— 包含一个空白页的pdf文件

2. 添加文字

1)设置文字颜色

c.setFillColorRGB(R/255, G/255, B/255, 透明度)

2)设置文字字体

  • 注册ttf文件对应字体

    pdfmetrics.registerFont(TTFont('字体名', '字体ttf文件路径'))

  • 绑定字体对象

    c.setFont('字体名', 字体大小)

3)文字倾斜

c.rotate(倾斜角度)

4)在指定位置添加文字

c.drawString(x坐标, y坐标, 文字内容)

3. 添加图片

drawImage('图片路径', x坐标, y坐标, 宽度, 高度)

4. 保存

c.save()

案例:

# 构建空白画布
from reportlab.pdfgen import canvas
# 字体注册
from reportlab.pdfbase import pdfmetrics
# 字体
from reportlab.pdfbase.ttfonts import TTFont# 1. 创建画布(包含一个空白页的pdf文件)
c = canvas.Canvas('files/water2.pdf')# 2. 添加文字
# 1)设置文字颜色
c.setFillColorRGB(210/255, 105/255, 30/255, 0.5)# 2)设置文字字体
# 注册ttf文件对应字体
pdfmetrics.registerFont(TTFont('f1', 'files/aa星玥体.ttf'))
pdfmetrics.registerFont(TTFont('f2', 'files/上首水滴体.ttf'))
c.setFont('f1', 30)# 3)文字倾斜
c.rotate(45)# 4)在指定位置添加文字
# c.drawString(x坐标, y坐标, 文字内容)
c.drawString(400, 100, '清虚若云烟 渺渺尘缘')# 重置所有效果重新写
c.setFont('f2', 15)
c.setFillColorRGB(0, 1, 1, 0.5)
c.rotate(-45)   # 回正
c.drawString(250, 350, '此生有一念永不灭的夙愿')# 5)添加图片
# drawImage('图片路径', x坐标, y坐标, 宽度, 高度)
c.drawImage('files/头像.jpg', 300, 380, 60, 60)# 保存
c.save()

运行效果:

day10 Python操作pdf文件相关推荐

  1. python 操作PDF文件 之 A3页面转A4

    python 操作PDF文件 A3页面转A4页面 文章目录 1. 需求概述 2. 代码实现 1. 需求概述 最近接到一份PDF资料需要打印,奈何页面是如图所示的A3格式的,奈何目前条件只支持打印A4. ...

  2. PyPDF2:使用Python操作PDF文件

    诸神缄默不语-个人CSDN博文目录 PDF是文档常用格式,使用Python包PyPDF2可以对PDF文档实现批量.迅速的操作,包括提取文字.切分或合并PDF文件.创建annotation.加密和解密等 ...

  3. 【实用篇】Python操作PDF文件

    PDF是Portable Document Format的缩写,这类文件通常使用 .pdf 作为其扩展名.在日常开发工作中,最容易遇到的就是从PDF中读取文本内容以及用已有的内容生成PDF文档这两个任 ...

  4. python读取PDF文件中跨页表格思路分享

    目录 背景 背景知识 实现思路 1.判断当前页面是否以表格结尾 2.判断下一页面是否以表格开头 3.注意事项 参考 背景 最近需要读取PDF文件中的表格,遇到的一个难点之一是如何识别并合并PDF中跨页 ...

  5. python读取pdf文件_python读取pdf文件

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 一.安装pdfminer3k模块?二. 读取pdf文件import sysimp ...

  6. 第19天---python办公自动化---操作PDF文件

    第19天-python办公自动化-操作PDF文件 在Python中,可以使用名为PyPDF2的三方库来读取PDF文件,可以使用下面的命令来安装它. pip install PyPDF2 读取PDF并抽 ...

  7. python对PDF文件操作

    python对PDF文件操作 下载模块PyPDF2,以页为基本单位对PDF文件进行读写操作,无法直接操作每一页内容. PDF文件读操作 导入函数 from PyPDF2 import PdfFileR ...

  8. Python使操作PDF文件变得有趣

    大家好 我是毕加锁 (锁!) 大家在平时操作PDF文件时是不是感觉很枯燥 那么今天就教大家利用Python让操作PDF文件变得有趣起来  目录  工具  从PDF中提取文本  旋转和叠加页面  加密P ...

  9. python怎么玩pdf_最全总结!聊聊 python 操作PDF的几种方法

    作者:陈熹 来源:早起Python 一.前言 大家好,有关Python操作PDF的案例之前已经写过一个PDF批量合并,这个案例初衷只是给大家提供一个便利的脚本,并没有太多讲解原理,其中涉及的就是PDF ...

最新文章

  1. 分析机风云:超前时代五十载,是非曲直苦难辩
  2. PHP中少用但是很好用的方法
  3. man mysql_几个容易被忽略的mysql知识
  4. mysql+根密码是什么意思,重设MySQL根密码
  5. JIRA官方:JIRA源代码集成
  6. curl记录响应时间
  7. linux下mysql设置关联_Linux下mysql安装与配置
  8. CSS布局控制--盒子模型
  9. 国产数据库的里程碑式新突破:贵阳银行核心系统4.2亿订单采购易鲸捷
  10. 4.3-软件开发中,“原型图”的作用与绘制方法说明
  11. imdb.com排名算法
  12. SAP S4 HANA 银行账户管理(Bank Account Management)- S4中的变化、数据维护平台介绍和配置实操等
  13. Arduino入门小知识点总结(2)(红外感应开关 与 继电器接法 模拟输入输出tone函数)
  14. Ubuntu16.04系统+GTX1050TI显卡的tensorflow1.6(GPU版)安装-详细图文
  15. amt是什么意思_变速箱中的at、mt和amt是什么意思啊?
  16. mockups 安装
  17. C标准库 ctype
  18. vue上传文件,实现单选 ,实现递归多选
  19. 在线正则表达式生成器用法
  20. Microsoft一些补丁下载地址

热门文章

  1. 你踩过几个?微信H5小游戏开发中的那些坑
  2. 拟合直线后简单快速求解两直线交点
  3. 产品经理常用工具锦集
  4. windeployqt发布项目 为何总是缺少dll
  5. 智能井盖传感器:以科技破解城市顽疾
  6. LIS3DH的初步探索
  7. 如何使用 CSS 中的重置(reset)属性来重置元素在网页中的默认样式
  8. Git学习笔记(黑马)
  9. 【visum工作笔记】之十 —— import EMME2 地图
  10. Linux的hwclock命令笔记221109