Как извлечь изображения из PDF в чистом Python?
Я разрабатываю сервис, в котором мне теперь нужно извлечь изображения из файла PDF. Из командной строки Linux я могу извлечь изображения, используя библиотеку Poppler:
pdfimages my_file.pdf /tmp/image
Поскольку я использую инфраструктуру Python Flask и хочу запустить свой сервис на Heroku, я хочу извлечь изображения, используя чистый Python (или любую библиотеку, которая может работать на Heroku в системе Flask).
Так кто-нибудь знает, как я могу извлечь изображения из PDF в чистом Python? Я предпочитаю решения с открытым исходным кодом, но я готов заплатить за них, если это необходимо (до тех пор, пока они работают под моим собственным контролем на Heroku).
0 ответов
import minecart
import os
from NumberOfPages import getPageNumber
def extractImages(filename):
# making new directory if it doesn't exist
new_dir_name = filename[:-4]
if not os.path.exists(new_dir_name):
os.makedirs(new_dir_name + '/images')
os.makedirs(new_dir_name + '/text')
# open the target file
pdf_file = open(filename, 'rb')
# parse the document through the minecart. Document function
doc = minecart.Document(pdf_file)
# getting the number of pages in the pdf file.
num_pages = getPageNumber(filename)
# getting the list of all the pages
page = doc.get_page(num_pages)
count = 0
for page in doc.iter_pages():
for i in range(len(page.images)):
try:
im = page.images[i].as_pil() # requires pillow
name = new_dir_name + '/images/image_' + str(count) + '.jpg'
count = count + 1
im.save(name)
except:
print('Error encountered at %s' % filename)
doc_name = new_dir_name + '/images/info.txt'
with open(doc_name, 'a') as x:
print( x.write('Number of images in document: {}'.format(count)))