luispoveda93/ensld-pilot-work / render_exhibits.py
luispoveda93's picture
download
raw
976 Bytes
import json, os, fitz
os.makedirs('/work/exhibit_pages', exist_ok=True)
pilot = [json.loads(l) for l in open('/work/pilot_questions.jsonl')]
pages_needed = set()
for p in pilot:
if p['has_exhibit']:
pages_needed.add(p['page'])
if p['page'] - 1 > 0:
pages_needed.add(p['page'] - 1)
# step 3: render page 144 too if any pilot question is Exam C Q61 area
if any(p['exam'] == 'C' and 58 <= p['qnum'] <= 64 for p in pilot):
pages_needed.add(144)
print('pages to render:', sorted(pages_needed))
doc = fitz.open('/work/source.pdf') if os.path.exists('/work/source.pdf') else None
if doc is None:
raise SystemExit('source PDF not found')
for n in sorted(pages_needed):
if n < 1 or n > doc.page_count:
print('skip out-of-range page', n)
continue
pix = doc[n - 1].get_pixmap(dpi=200)
out = '/work/exhibit_pages/page_%d.png' % n
pix.save(out)
print('rendered', out, pix.width, 'x', pix.height)
doc.close()

Xet Storage Details

Size:
976 Bytes
·
Xet hash:
f90bc5280491c4671b1fe81991a48598a40036760edc578aef6bbd44e2ea08af

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.