Это переписывание Как вставить отсутствующую страницу как пустую страницу в 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, чтобы выбрать, куда добавить пустую страницу, но я предположил, что после того, как я клонировал документ, у него должен быть какой-то внутренний «маркер» на конечной странице?