Domanda non riesco a usare pret per stampare un documento.

monnezzza

Utente Silver
11 Marzo 2021
119
23
53
86
Ciao a tutti, in questi giorni sto giocando con pret (Printer Exploitation Tool) e ho riscontrato un problema nella funzione print.
Quando invia il pacchetto con il file convertito in formato pcl lo invia in formato hex e non invia i bytes. Per questo la stampante stampa un foglio con una lunghissima serie di hex.
La parte che mi da problemi è questa:
Python:
  def do_print(self, arg):
    'Print image file or raw text:  print <file>|"text"'
    '''
    ┌──────────────────────────────────────────────────────────┐
    │ Poor man's driverless printing (PCL based, experimental) │
    └──────────────────────────────────────────────────────────┘
    '''
    if not arg: arg = eval(input('File or "text": '))
    if arg.startswith('"'): data = arg.strip('"')     # raw text string
    elif arg.endswith('.ps'): data = file().read(arg).decode() # postscript file
    else: data = self.convert(arg, 'pcl')             # anything else…
    print("exiting variable and launching document...")
    if data: self.send(c.UEL + str(data) + c.UEL);print("Document Printed") # send pcl datastream to printer
    else: print("Document not printed...")

Ho provato ha togliere str() nella funzione self.send e mi restituisce questo errore.
Codice:
can only concatenate str (not "bytes") to str
Ho capito che mi da questo errore perchè pret cerca di inviare la variabile c.UEL che è una stringa e poi l'immagine in pcl che sono bytes.
Non riesco a capire come far stampare con pret un immagine senza che escano dei byte incompresibili perchè il testo normale lo stampa perfettamente.
Grazie in anticipo