Заменить страницы как минимум 100 в PDF из другого PDF - PullRequest
0 голосов
/ 18 сентября 2018

Это пример кода,

import PyPDF2
import numpy as np
# creating a pdf file object
pdfFileObj = open('original.pdf' , 'rb')

pdfFileObj_1 = open('tutorial.pdf', 'rb')
# creating a pdf reader object
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pdfReader_1 = PyPDF2.PdfFileReader(pdfFileObj_1)
# creating a pdf writer object for new pdf
pdfWriter = PyPDF2.PdfFileWriter()
for i in range(100):
    page= pdfReader.getPage(i)
    page_1= pdfReader_1.getPage(i)
    pdfWriter.addPage(page)
    pdfWriter.addPage(page_1)

#print(pdfWriter.getNumPages())
# new pdf file object
newFile = open('replaced_pdf_1.pdf', 'wb')


pdfWriter.write(newFile)

# closing the original pdf file object
pdfFileObj.close()
pdfFileObj_1.close()
# closing the new pdf file object
newFile.close()

И ошибка, которую я получил,

PdfReadWarning: Объект 3210 не определено.[pdf.py:1629] Traceback (последний вызов был последним): файл "test.py", строка 22, в файле pdfWriter.write (newFile) "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages / PyPDF2 / pdf.py ", строка 482, в записи self._sweepIndirectReferences (externalReferenceMap, self._root) Файл" /home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py ", строка 571, в _sweepIndirectReferences self._sweepIndirectReferences (externMap, realdata) Файл" /home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py ", строка 547, в _sweepIndirectRe= self._sweepIndirectReferences (externMap, значение) Файл "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", строка 571, в _sweepIndirectReferences self._sweepIndirectReferences (externMap, real)Файл "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", строка 547, в значении _sweepIndirectReferences = self._sweepIndirectReferences (externMap, значение) Файл "/ home / ubuntu /Ritesh / рабочий / Библиотека / python3.5 / сайт-пакes / PyPDF2 / pdf.py ", строка 556, в значении _sweepIndirectReferences = self._sweepIndirectReferences (externMap, data [i]), файл" /home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py ", строка 571, в _sweepIndirectReferences self._sweepIndirectReferences (externMap, realdata) Файл" /home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py ", строка 547, в_sweepIndirectReferences value = self._sweepIndirectReferences (externMap, value) Файл "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", строка 577, в _sweepIndirectReferences newobj = data.pdf.Файл getObject (data) "/home/ubuntu/Ritesh/working/lib/python3.5/site-packages/PyPDF2/pdf.py", строка 1631, в getObject поднять utils.PdfReadError ("Не удалось найти объект.")PyPDF2.utils.PdfReadError: Не удалось найти объект.

Что я понял из изменения количества страниц, добавленных к объекту PdfFileWriter pdfWriter .., если число страниц превышает 5показывая выше ошибку .. остальное работает нормально.Мне нужно переписать страницы больше чем на 100 .. пожалуйста, кто-нибудь поможет с этим.

1 Ответ

0 голосов
/ 18 сентября 2018

Я использовал этот пример кода в Windows 10 и Red Hat Enterprise Linux 6. На обеих платформах я использовал python 2.7 (у меня на рабочей станции нет python 3.5). Поскольку вы не предоставили свои версии original.pdf и tutorial.pdf, я использовал 2 электронные книги в формате pdf: 686 страниц и 1014 страниц соответственно.

И я не смог подтвердить ваши наблюдения: с

для i в диапазоне (100):

заменено на

для меня в диапазоне (600):

Я получил 1200-страничный вывод pdf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...