How to delete pages from pdf file using Python?

前端 未结 2 1276
难免孤独
难免孤独 2021-02-01 19:57

I have some .pdf files with more than 500 pages, but I need only a few pages in each file. It is necessary to preserve document`s title pages. I know exactly the numbers of the

相关标签:
2条回答
  • 2021-02-01 20:29

    Use pyPDF2:

    https://github.com/mstamy2/PyPDF2

    Documentation is at:

    https://pythonhosted.org/PyPDF2/

    It seems pretty intuitive.

    0 讨论(0)
  • 2021-02-01 20:30

    Try using PyPDF2.

    Instead of deleting pages, create a new document and add all pages which you don't want to delete.

    Some sample code (originally adapted from BinPress which is dead, archived here).

    from PyPDF2 import PdfFileWriter, PdfFileReader
    pages_to_keep = [1, 2, 10] # page numbering starts from 0
    infile = PdfFileReader('source.pdf', 'rb')
    output = PdfFileWriter()
    
    for i in pages_to_keep:
        p = infile.getPage(i)
        output.addPage(p)
    
    with open('newfile.pdf', 'wb') as f:
        output.write(f)
    

    or

    from PyPDF2 import PdfFileWriter, PdfFileReader
    pages_to_delete = [3, 4, 5] # page numbering starts from 0
    infile = PdfFileReader('source.pdf', 'rb')
    output = PdfFileWriter()
    
    for i in range(infile.getNumPages()):
        if i not in pages_to_delete:
            p = infile.getPage(i)
            output.addPage(p)
    
    with open('newfile.pdf', 'wb') as f:
        output.write(f)
    
    0 讨论(0)
提交回复
热议问题