У меня есть несколько PDF-файлов, которые прекрасно читаются в PdfFileReader, но когда я собираюсь записать их в новый файл, они выдают что-то вроде:
PdfReadWarning: Invalid stream (index 6) within object 29 0: Stream has ended unexpectedly [pdf.py:1575]
Это происходит только во времянаписать, что слишком поздно в рабочем процессе, чтобы восстановить изящно. Это происходит даже при установленном Strict = False. Могу ли я что-нибудь сделать, чтобы проверить плохие PDF-файлы заранее? Сейчас самое лучшее, что я могу придумать, это:
try:
p = PdfFileReader('bad_stream_file.pdf',strict=False)
merger=PdfFileMerger()
merger.append(p)
new_dummy_file = io.BytesIO()
merger.write(new_dummy_file)
except:
#reprocess file with ghostscript and try again.
Кстати, я пытался повозиться с кодом PyPDF2, и похоже, что количество косвенных объектов увеличивается из PdfFileReader. Писателю с этими проблемными файлами. Кроме того, с принудительным применением Strict = False он передает NullObject, который затем передается в функцию stream.read, что впоследствии вызывает ошибку разницы о том, что он не является целым числом.