day9 多线程的应用

多线程的应用

01 . PDF文件读操作
  • pypdf2 - 以页为单位对PDF文件进行读写操作(无法直接操作每一页内容)。

  • 打开文件创建reader对象(相当于PDF文件对象)。

  • 获取PDF文件的页数。

  • 获取指定的页,返回页对象 - reader对象 . getpage(页的下标):获取指定页,下标从0开始。

    from PyPDF2 import PdfFileReader
    
    reader = PdfFileReader(open('files/学习路线图水印.pdf','rb'))
    num = reader.getNumPages()
    for index in range(num):
        page = reader.getNumPages(index)
    
02 . PDF文件写操作
  • 创建writer对象,会自动创建一个空的PDF文件

  • 添加页

    writer.addPage(reader.getPage(0))
    
  • 添加空白页

    writer.addBlankPage(400,600)
    
  • 保存文件

    from PyPDF2 import PdfFileWriter,PdfFileReader
    
    reader = PdfFileReader(open('files/学习路线图水印.pdf','rb'))
    
    writer = PdfFileWriter()
    
    # writer.addPage(reader.getPage(0))
    # writer.addBlankPage(400,600)
    
    nums = reader.getNumPages()
    for x in range(1,nums):
        writer.addPage(reader.getPage(x))
    
    writer.write(open('files/new.pdf','wb'))
    
    
    
    from PyPDF2 import PdfFileWriter,PdfFileReader
    
    
    reader1 = PdfFileReader(open('files/学习路线图水印.pdf','rb'))
    reader2 = PdfFileReader(open('files/存储引擎的讲解.pdf','rb'))
    writer = PdfFileWriter()
    for index in range(reader1.getNumPages()):
        writer.addPage(reader1.getPage(index))
    
    for index in range(reader2.getNumPages()):
        writer.addPage(reader2.getPage(index))
    
    writer.write(open('files/合并.pdf','wb'))
    
03 . 页面相关操作
  • 旋转 - 返回值和原页面都是旋转后的页面

    页对象 . rotateClockwise(旋转角度)

    from PyPDF2 import PdfFileReader,PdfFileWriter
    
    reader1 = PdfFileReader(open('files/存储引擎的讲解.pdf','rb'))
    reader2 = PdfFileReader(open('files/学习路线图水印.pdf','rb'))
    writer = PdfFileWriter()
    
    page = reader1.getPage(0)
    new_page = page.rotateClockwise(90)
    
    writer.write(open('files/页面操作.pdf','wb'))
    
  • 缩放

    from PyPDF2 import PdfFileReader,PdfFileWriter
    
    reader1 = PdfFileReader(open('files/存储引擎的讲解.pdf','rb'))
    reader2 = PdfFileReader(open('files/学习路线图水印.pdf','rb'))
    writer = PdfFileWriter()
    
    page = reader1.getPage(1)
    page.scale(200,400)
    writer.addPage(page)
    
  • 合并(添加水印)

    from PyPDF2 import PdfFileReader,PdfFileWriter
    
    reader1 = PdfFileReader(open('files/存储引擎的讲解.pdf','rb'))
    reader2 = PdfFileReader(open('files/学习路线图水印.pdf','rb'))
    writer = PdfFileWriter()
    
    for index in range(reader1.getNumPages()):
        page1 = reader1.getPage(index)
        page2 = reader2.getPage(0)
        page1.mergePage(page2)
        writer.addPage((page1))
    
    writer.write(open('files/页面操作.pdf','wb'))
    
04 . 创建水印文件
  • 导入

    • 导入创建空的pdf文件的类

      from reportlab.pdfgen.canvas import Canvas
      
    • 导入注册字体的工具

      from reportlab.pdfbase.pdfmetrics import registerFont
      
    • 导入字体类

      from reportlab.pdfbase.ttfonts import TTFont
      
  • 创建空的pdf文件

    pdf = Canvas('files/water.pdf')
    
  • 添加文字内容

    • 设置字体

      1. 注册字体文件(ttf文件)

        registerFont(TTFont('F1', 'files/cc.ttf'))
        registerFont(TTFont('F2', 'files/dd.ttf'))
        
        pdf.setFont('F2', 30)
        pdf.setFillColorRGB(0.4, 0.4, 0.4, 0.6)
        pdf.drawString(450, 300, '你好吗?')
        
      2. 设置pdf文件的字体(可以反复设置) - 文件对象.setFont(字体名, 字体大小)

        pdf.setFont('F1', 40)
        
    • 设置字体颜色(可以反复设置)

      RGB颜色(计算机三原色) - R->red、G->green、B->blue 标准值是0~255 (这儿是0~1)

      文件对象.setFillColorRGB(r, g, b, alpha)

      pdf.setFillColorRGB(1, 0, 0, 0.5)
      
  • 旋转

    pdf.rotate(45)
    
    pdf.drawString(300, 100, '你好吗?')
    
  • 添加图片

    pdf.drawImage('files/apple.png', 300, 120)
    
  • 保存

    pdf.save()
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值