Da11-pdf文件读操作y

1、创建pdf环境
  • 在工程目录中——File——setting——Project——Python interpreter——(openpyxl、pypdf2、pyecharts、reportlab)添加4个镜像;
  • 如果下载环境过慢,切换到国内镜像源中;
2、pdf文件读操作

注意:pdf的获取中,获取的是页(及页中的内容,无法对内容进行修改)

from PyPDF2 import PdfReader
# 1、打开pdf文件
f = open('files/MySQL.pdf','rb')

# 2、获取pdfreader对象
reader = PdfReader(f)

# 3、获取总页数
num  = reader.numPages
print(num)

# 4、获取指定页
page1 = reader.getPage(0)
print(page1)
3、pdf文件写操作
from PyPDF2 import PdfWriter,PdfReader

# 1、打开文件
f1= open('files/data1.pdf','wb')                  # 如果pdf文件 不存在,它会创建
f2 = open('files/MySQL.pdf','rb')
reader = PdfReader(f2)


# 2、新建 Pdfwrite 对象
write = PdfWriter()


# 3、添加页
# 1)添加从另外一个pdf文件中获取到的一页
write.add_page(reader.getPage(0))
# 1)添加空白页
write.add_blank_page()

# 将数据写入到pdf文件中(保存)
f1= open('files/data1.pdf','wb')
write.write(f1)

案列:创建一个新的PDF write

write1 = PdfWriter()
# 打开提供封面的文件
f3 = open('files/HEU_KMS_Activator_v20.0.0用户使用手册.pdf','rb')
reader1 = PdfReader(f3)
#打开需要添加的文件
f4 = open('files/MySQL.pdf','rb')
reader2 = PdfReader(f4)
# 添加封面
write1.add_page(reader1.getPage(0))
# 添加需要添加每一页的文件
for x in range(reader2.numPages):
    write1.add_page(reader2.getPage(x))

f5 = open('files/newm.pdf','wb')
write1.write(f5)

练习1:在MySQL.pdf文件的最前面加封面,最后面加结束页

from PyPDF2 import PdfWriter,PdfReader
write = PdfWriter()
# 打开需要全部内容的pdf
u3  = open('files/MySQL.pdf','rb')
rea3 = PdfReader(u3)
# 打开提供封面的pdf
u1 = open('files/HEU_KMS_Activator_v20.0.0用户使用手册.pdf','rb')
rea1 = PdfReader(u1)
# 打开提供结束页的pdf
u2 = open('files/Python数据分析大纲.pdf','rb')
rea2 = PdfReader(u2)
# 添加封面
write.add_page(rea1.getPage(0))
# 添加正文
for index in range(rea3.numPages):
    write.add_page(rea3.getPage(index))
# 获取提供结束也文件的最大页数
a = rea2.numPages
# 添加结束页
write.add_page(rea2.getPage(a -1))
# 保存文件
u4 = open('files/ne1.pdf','wb')
write.write(u4)
4、添加水印
from PyPDF2 import PdfReader,PdfWriter

# 1、获取水印页和需要添加水印的页

water = PdfReader(open('files/water.pdf','rb')).getPage(0)
page  = PdfReader(open('files/MySQL.pdf','rb')).getPage(0)

# 2、添加水印
# 需要添加水印的页 .mergePage(水印页)
page.mergePage(water)

# 3、将添加完水印的也写入到一个新的pdf文件中
write = PdfWriter()
write.add_page(page)
write.write(open('files/data2.pdf','wb'))

# 给每一页添加水印
water1 = PdfReader(open('files/water.pdf','rb')).getPage(0)
pdf = PdfReader(open('files/MySQL.pdf','rb'))
# pdf.mergePage(water1)

write1 = PdfWriter()
for x in range(pdf.numPages):
    page = PdfReader(open('files/MySQL.pdf','rb')).getPage(x)
    page.mergePage(water1)

    write1.add_page(page)

write1.write(open('files/123.pdf','wb'))
5、创建水印

# 创建空白的页面的pdf文件
from reportlab.pdfgen import canvas
# 注册字体
from reportlab.pdfbase import pdfmetrics
# 提供字体对象
from reportlab.pdfbase.ttfonts import TTFont


# 1、创建空白的画布
can = canvas.Canvas('files/myWater.pdf')

# 2、添加文字内容
# 1)注册字体名称
# 创建字体对象:TTFont(字体名称,ttf字体文件
font1 = TTFont('f1','files/font1.ttf')
font2 = TTFont('f2','files/font2.ttf')
# 注册字体
pdfmetrics.registerFont(font1)
pdfmetrics.registerFont(font2)

# 2)添加文字
# a、设置字体
can.setFont('f1',30)
# b、设置文字颜色
can.setFillColorRGB(219/255,112/255,147/255,0.5)  #一般水印文件都会给一定的透明度
#c、旋转
can.rotate(45)

# 渲染文字
can.drawString(400,100,'你好')


can.rotate(-45)

can.drawString(100,100,'你好嘛?')
# 每更改文字,设置就重来一次

# 3、添加图片
image_data  = open('files/1.png','rb')
can.drawImage('files/1.png',150,200)

# 保存文件
can.save()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值