21 lines
546 B
Python
21 lines
546 B
Python
from itertools import takewhile, starmap, islice, repeat
|
|
from operator import truth
|
|
|
|
from pdf2image import pdf2image
|
|
|
|
|
|
def chunk_iterable(iterable, n):
|
|
return takewhile(truth, map(tuple, starmap(islice, repeat((iter(iterable), n)))))
|
|
|
|
|
|
def get_page_count(pdf):
|
|
return pdf2image.pdfinfo_from_bytes(pdf)["Pages"]
|
|
|
|
|
|
def stream_pages(pdf):
|
|
def page_to_image(idx):
|
|
return pdf2image.convert_from_bytes(pdf, first_page=idx, last_page=idx + 1)[0]
|
|
|
|
page_count = get_page_count(pdf)
|
|
return map(page_to_image, range(page_count))
|