"""Envia um arquivo .prn (SBPL cru) direto pra impressora via win32print RAW.
Mesmo caminho que o SIGEP usa — isola o dado do resto do app.

Uso:
    python send_prn.py teste_siemaq.prn
    python send_prn.py teste_siemaq.prn "SATO_RAW"
"""
import sys
import win32print

def main():
    prn = sys.argv[1] if len(sys.argv) > 1 else "teste_siemaq.prn"
    printer = sys.argv[2] if len(sys.argv) > 2 else "SATO_RAW"

    with open(prn, "rb") as f:
        data = f.read()

    print(f"Enviando {len(data)} bytes para '{printer}'...")
    h = win32print.OpenPrinter(printer)
    try:
        win32print.StartDocPrinter(h, 1, ("TESTE_PRN", None, "RAW"))
        win32print.StartPagePrinter(h)
        win32print.WritePrinter(h, data)
        win32print.EndPagePrinter(h)
        win32print.EndDocPrinter(h)
    finally:
        win32print.ClosePrinter(h)
    print("ENVIADO.")

if __name__ == "__main__":
    main()
