day3.24-多线程的运用
1. pdf文件的读操作
from PyPDF2 import PdfFileReader
reader = PdfFileReader(open('files/2020-陈剑.pdf', 'rb'))
num = reader.getNumPages()
print(num)
for index in range(num):
page = reader.getPage(index)
print(page)
2. pdf文件的写操作
from PyPDF2 import PdfFileWriter,PdfFileReader
writer = PdfFileWriter()
reader = PdfFileReader(open('files/2020-陈剑.pdf','rb'))
writer.addPage(reader.getPage(0))
writer.write(open('files/new1.pdf','wb'))
3. 合并pdf文件
from PyPDF2 import PdfFileWriter,PdfFileReader
reader1 = PdfFileReader(open('files/2020-陈剑.pdf','rb'))
reader2 = PdfFileReader(open('files/new.pdf','rb'))
writer = PdfFileWriter()
num1 = reader1.getNumPages()
for i in range(num1):
writer.addPage(reader1.getPage(i))
num2 = reader2.getNumPages()
for i in range(num2):
writer.addPage(reader1.getPage(i))
writer.write(open('files/new1.pdf','wb'))
4. 页面相关操作
from PyPDF2 import PdfFileReader,PdfFileWriter
reader1 = PdfFileReader(open('files/2020-陈剑.pdf','rb'))
reader2 = PdfFileReader(open('files/new.pdf','rb'))
writer = PdfFileWriter()
writer.write(open('files/页面操作.pdf','wb'))
5. 创建水印文件
from reportlab.pdfgen.canvas import Canvas
from reportlab.pdfbase.pdfmetrics import registerFont
from reportlab.pdfbase.ttfonts import TTFont
pdf = Canvas('files/创建水印.pdf')
registerFont(TTFont('f1','files/dd.ttf'))
registerFont(TTFont('f2','files/dd1.ttf'))
pdf.setFont('f1',100)
pdf.rotate(30)
pdf.setFillColorRGB(30/255,144/255,255/255,0.5)
pdf.drawString(300,300,'Mr.Liu')
pdf.setFillColorRGB(30/255,30/255,30/255,0.5)
pdf.drawString(350,400,'Mr.Liu')
pdf.drawImage("files/铃铛.png",100,100)
pdf.save()
6. 批量添加水印
import os
from PyPDF2 import PdfFileWriter,PdfFileReader
reader1 = PdfFileReader(open('files/创建水印.pdf','rb'))
page1 = reader1.getPage(0)
pdfs = os.listdir('in')
for name in pdfs:
writer = PdfFileWriter()
reader2 = PdfFileReader(open(f'in/{name}','rb'))
num = reader2.getNumPages()
for i in range(num):
page2 = reader2.getPage(i)
page2.mergePage(page1)
writer.addPage(page2)
writer.write(open(f'out/{name}','wb'))
作业
from PyPDF2 import PdfFileWriter,PdfFileReader
import os
def pdf(path1,path2,path3):
name_list = os.listdir(f'{path1}')
pdf_name = []
for i in name_list:
if '.pdf' in i:
pdf_name.append(i)
for name in pdf_name:
writer = PdfFileWriter()
reader1 = PdfFileReader(open(f'{path1}/{name}','rb'))
reader2 = PdfFileReader(open(f'{path3}','rb'))
page1 = reader2.getPage(0)
num = reader1.getNumPages()
for i in range(num):
page2 = reader1.getPage(i)
try:
page2.mergePage(page1)
writer.addPage(page2)
writer.write(open(f'{path2}/{name}','wb'))
except:
continue
if __name__ == '__main__':
in_pdf = 'in'
watermark_pdf = 'watermark/创建水印.pdf'
out_pdf = 'out'
pdf(in_pdf,out_pdf,watermark_pdf)