"""Render ONE PDF page to a PNG so an agent can view it.

Usage: python _renderpage.py <pdf> <page1based> <out.png> [scale]
"""
import sys, os
import fitz
from PIL import Image

def main():
    pdf = sys.argv[1]; page = int(sys.argv[2]); out = sys.argv[3]
    scale = float(sys.argv[4]) if len(sys.argv) > 4 else 2.0
    doc = fitz.open(pdf)
    if page < 1 or page > doc.page_count:
        print("ERR bad page %d (doc has %d)" % (page, doc.page_count)); return
    pc = doc.page_count
    pg = doc[page - 1]
    pix = pg.get_pixmap(matrix=fitz.Matrix(scale, scale), colorspace=fitz.csRGB)
    im = Image.frombytes("RGB", (pix.width, pix.height), pix.samples)
    os.makedirs(os.path.dirname(out) or ".", exist_ok=True)
    im.save(out)
    doc.close()
    print("OK %s  %dx%d  (page %d/%d)" % (out, im.width, im.height, page, pc))

if __name__ == "__main__":
    main()
