day9 python操作pdf
一、pdf文件读操作
from PyPDF2 import PdfReader, PdfWriter
1)创建reader
reader = PdfReader('files/HEU_KMS_Activator_v20.0.0用户使用手册.pdf')
2) 获取总的页数
num = reader.getNumPages()
3) 获取指定的页(页数从0开始)
p1 = reader.getPage(0) # 获取第一页
p2 = reader.getPage(1) # 获取第二页
二、pdf文件写操作
创建一个空的pdf
writer = PdfWriter()
1) 添加页
writer.addPage(p1) # 在新的pdf文件里面添加之前的每一页
writer.addPage(p2)
2) 添加空白页
writer.addBlankPage()
3)插入指定页
writer.insertPage(p1, 2) # 在第三页插入一页
保存
writer.write('files/new.pdf')
三、 添加水印
from PyPDF2 import PdfReader, PdfWriter
import os
1.准备水印页面
reader1 = PdfReader('files/water.pdf')
water = reader1.getPage(0)
2.准备需要添加水印的文件
reader2 = PdfReader('files/MySQL.pdf')
page = reader2.getPage(0)
3.添加水印
page.mergePage(water)
4.将添加完水印的页面添加到新的PDF文件中
writer = PdfWriter()
writer.addPage(page)
writer.write('files/水印1.pdf') # 最后保存
补充:获取文件夹中所有文件的名字:os.listdir(文件夹地址)
result = os.listdir('files')
四、创建水印
先用来创建画布(空白PDF文件)
from reportlab.pdfgen.canvas import Canvas
用来对字体进行注册
from reportlab.pdfbase.pdfmetrics import registerFont
from reportlab.pdfbase.ttfonts import TTFont
1.创建一个空白文件(画布)
# 在指定位置新建空白的PDF文件:Canvas(文件路径)
file = Canvas('files/MYWater.pdf')
2.添加文字 (文字默认为英文)
1)注册字体
registerFont(TTFont('f1','files/font1.ttf'))
registerFont(TTFont('f2','files/font2.ttf'))
2)设置字体的名字和字体大小
file.setFont('f1',40)
3 )设置字体颜色
# r、g、b:0 ~ 1
# 透明度:0~1
file.setFillColorRGB(139/255, 69/255, 19/255, 0.5)
4)旋转 —— 文件.rotate(角度)
file.rotate(45)
# 文件对象.drawString(x坐标,y坐标,‘内容’)
file.drawString(0, 0, '你好,世界!')
file.rotate(45) # 将画布旋转45度
3.渲染图片
文件对象.drawImage('图片地址',x坐标,y坐标,mask='auto')
file.drawImage('files/car.png', 0, 0, mask='auto')
file.rotate(-45) # 将图片水印放回原角度
file.save() # 最后保存