Добавление пустой страницы в PDF-файл с нечетными страницами в Python

Это переписывание Как вставить отсутствующую страницу как пустую страницу в PDF с помощью Python? но я пытаюсь сделать это с помощью PdfFileWriter дополнительных методов: cloneDocumentFromReader() и addBlankPage(), потому что так мне показалось чище.

Мне нужно добавить пустую страницу в конце PDF, если он содержит нечетное количество страниц, но количество страниц больше 1.

Итак, я пытаюсь сделать это:

from PyPDF2 import PdfFileReader, PdfFileWriter
with open(pdffile, 'rb') as input:
    pdf=PdfFileReader(input)
    numPages=pdf.getNumPages()
    if numPages > 1 and (numPages % 2 == 1):
            outPdf=PdfFileWriter()
            outPdf.cloneDocumentFromReader(pdf)
            outPdf.addBlankPage()
            outStream=file('/tmp/test.pdf','wb')
            outPdf.write(outStream)
            outStream.close()

Код работает, но созданный PDF-файл меньше оригинала и выдает ошибку (не анализируется) при попытке открыть его в Adobe Acrobat.

Я что-то путаю с тем, как это должно работать? Я был немного удивлен, когда увидел, что не могу перемещаться в Pdf с помощью PdfWriter, чтобы выбрать, куда добавить пустую страницу, но я предположил, что после того, как я клонировал документ, у него должен быть какой-то внутренний «маркер» на конечной странице?


person Gnudiff    schedule 04.10.2017    source источник


Ответы (1)


Извините, оказывается, мне нужен был другой метод. А именно PdfWriter.appendPagesFromReader() .

person Gnudiff    schedule 04.10.2017