• [转]PyPDF2详解


    工作中可能会涉及处理pdf文件,PyPDF2就是这样一个库, 使用它可以轻松的处理pdf文件,它提供了读、写、分割、合并、文件转换等多种操作。官方地址:http://mstamy2.github.io/PyPDF2/

    安装

    1. RPM式系统(Redhat、CentOS)

    1
    pip install pypdf2

    2. DEB式系统(Debian、Ubuntu)以下任一

    1
    2
    pip install pypdf2
    apt install python-pypdf2

    3. Windows

    1
    pip install pypdf2

    使用

    PyPDF2 包含了 PdfFileReader PdfFileMerger PageObject PdfFileWriter 四个常用的主要 Class。

    简单读写

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    from PyPDF2 import PdfFileReader, PdfFileWriter
    readFile = 'read.pdf'
    writeFile = 'write.pdf'
    # 获取一个 PdfFileReader 对象
    pdfReader = PdfFileReader(open(readFile, 'rb'))
    # 获取 PDF 的页数
    pageCount = pdfReader.getNumPages()
    print(pageCount)
    # 返回一个 PageObject
    page = pdfReader.getPage(i)
    # 获取一个 PdfFileWriter 对象
    pdfWriter = PdfFileWriter()
    # 将一个 PageObject 加入到 PdfFileWriter 中
    pdfWriter.addPage(page)
    # 输出到文件中
    pdfWriter.write(open(writeFile, 'wb'))

    合并分割 PDF

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    from PyPDF2 import PdfFileReader, PdfFileWriter
    def split_pdf(infn, outfn):
        pdf_output = PdfFileWriter()
        pdf_input = PdfFileReader(open(infn, 'rb'))
        # 获取 pdf 共用多少页
        page_count = pdf_input.getNumPages()
        print(page_count)
        # 将 pdf 第五页之后的页面,输出到一个新的文件
        for in range(5, page_count):
            pdf_output.addPage(pdf_input.getPage(i))
        pdf_output.write(open(outfn, 'wb'))
    def merge_pdf(infnList, outfn):
        pdf_output = PdfFileWriter()
        for infn in infnList:
            pdf_input = PdfFileReader(open(infn, 'rb'))
            # 获取 pdf 共用多少页
            page_count = pdf_input.getNumPages()
            print(page_count)
            for in range(page_count):
                pdf_output.addPage(pdf_input.getPage(i))
        pdf_output.write(open(outfn, 'wb'))
    if __name__ == '__main__':
        infn = 'infn.pdf'
        outfn = 'outfn.pdf'
        split_pdf(infn, outfn)

    其他命令

    如果是要修改一个已有的 pdf 文件,可以将 reader 的页面添加到 writer 中:

    pdfWriter.appendPagesFromReader(reader)

    添加书签:

    pdfWriter.addBookmark(title, pagenum, parent=parent)


    ---------------------
    作者:py小蟒蛇
    来源:CNBLOGS
    原文:https://www.cnblogs.com/pyxiaomangshe/p/7918839.html
    版权声明:本文为作者原创文章,转载请附上博文链接!

     
  • 相关阅读:
    mysql学习日志
    Python学习day10 Javascript/Jquery
    Python学习day07 多线程多进程及主机管理
    Linux基本命令
    django 用户认证/Excel导入Mysql
    转:iptables详解
    Python django前端导入Excel脚本
    Python学习day08 分布式监控系统开发实战
    Subline Text2
    MySQL 常用函数分析
  • 原文地址:https://www.cnblogs.com/vilogy/p/12333726.html
Copyright © 2020-2023  润新知