Удалить страницы из PDF - PullRequest
0 голосов
/ 21 июня 2020

Я хочу удалить определенные страницы из файла pdf. Когда я пытаюсь удалить последнюю страницу в моем 15-страничном pdf, программа вместо этого удаляет первую страницу.


def delete_page():
    file1 = input("Enter the file's name: => example.pdf: ")
    file1_reader = open(file1, 'rb')
    file1_pdf_reader = PyPDF2.PdfFileReader(file1_reader)
    pdf_writer = PyPDF2.PdfFileWriter()
    pages_to_delete = [15, 14]
    

    for page_num in  range(1, file1_pdf_reader.numPages):
        if page_num not in pages_to_delete:
            pdf_writer.addPage(file1_pdf_reader.getPage(page_num))
        

    output = open(file1.split('.')[0] + '_modifed' + '.pdf', 'wb')
    pdf_writer.write(output)

    file1_reader.close()
    output.close()        
    

delete_page()

1 Ответ

0 голосов
/ 21 июня 2020

Страницы PDF проиндексированы из [0, pdf.numPages), тогда для удаления последних 2 страниц вам потребуется использовать [13, 14].

Когда вы используете грантер числа, затем 14, lib trun c значение с numPages.

page% numPages = 15% 15 = 0 = первая страница

Изменения:

from: range (1, file1_pdf_reader. numPages) в: диапазон (file1_pdf_reader.numPages)

от: pages_to_delete = [15, 14] до: pages_to_delete = [13, 14]

...