Есть ли способ извлечь изображения в виде потока из pdf-документа (используя библиотеку PyPDF2)? Также возможно заменить некоторые изображения на другие (сгенерированные с помощью PIL, например, или загруженные из файла)?Извлечение изображений из PDF с использованием python PyPDF2
Я могу получить EncodedStreamObject из дерева pdf-объектов и получить закодированный поток (путем вызова метода getData()), но выглядит как просто сырое содержимое без каких-либо заголовков изображений и другой метаинформации.
>>> import PyPDF2
>>> # sample.pdf contains png images
>>> reader = PyPDF2.PdfFileReader(open('sample.pdf', 'rb'))
>>> reader.resolvedObjects[0][9]
{'/BitsPerComponent': 8,
'/ColorSpace': ['/ICCBased', IndirectObject(20, 0)],
'/Filter': '/FlateDecode',
'/Height': 30,
'/Subtype': '/Image',
'/Type': '/XObject',
'/Width': 100}
>>>
>>> reader.resolvedObjects[0][9].__class__
PyPDF2.generic.EncodedStreamObject
>>>
>>> s = reader.resolvedObjects[0][9].getData()
>>> len(s), s[:10]
(9000, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc')
Я посмотрел на PyPDF2, ReportLab и PDFMiner решения совсем немного, но ничего подобного тому, что я ищу не нашел.
Любые примеры кода и ссылки будут очень полезными.
Итак, вы хотите открыть большой pdf-файл, извлечь страницы и добавить эту страницу в существующий pdf-файл? Было бы хорошо сохранить этот комбинированный pdf в качестве нового файла? – ExperimentsWithCode
Этот ответ может помочь: http://stackoverflow.com/a/34116472/1513933 –
Возможный дубликат [Извлечь изображения из PDF без повторной выборки в python?] (Http://stackoverflow.com/questions/2693820/extract- изображения, из-PDF-без передискретизации-в-питон) –