Per concludere questa breve esposizione..

Abbiamo esposto il metodo attraverso il quale il thread di stampa generato dalla PRINTER dialoga con un documento da stampare e abbiamo visto che sostanzialmente tutta l’operazione avviene intercettando tre comandi da parte del documento. Uno di questi comandi richiede il ritorno di un puntatore relativo alle linee di separazione da stampare. Non siamo entrati nel merito di come questo processo avvenga nel documento (in questo caso PRINTER_OUTPUT; vedremo questo in un prossimo blog; ci interessava descrivere lo scheletro della comunicazione. Notare che nel caso la linea di stampa richiesta non sia valida, il codice si limita a non trasferire il puntatore alle separazioni, che per default è nullo.

Il formato delle linee di separazioni rimandate..

Le linee di separazione sono definite in un vettore di puntatori UBYTE (convenzionalmente allocato al numero massimo di teste su una stampante); se ad esempio la stampante possiede 8 teste, saranno validi gli indici 0..7 nel vettore. se il puntatore (ad esempio STR->sep[4]) è passato a 0, significa che il relativo colore non è presente nella separazione  richiesta. Se invece il puntatore è non nullo, esso è  una linea di byte con valori (0..255) corrispondente alle concentrazioni sui diversi pixel. in questo caso il puntatore ad esempio STR->sep[4], punta ad un vettore di lunghezza pari al numero di pixel sulla linea (la dimensione in pixel della linea raster del documento).

Ovviamente non finisce qui: il vettore delle separazioni ricevuto sarà trasformato all’interno del thread in dati differenti, ad esempio in bit di dithering da trasferire alla stampante (compito svolto in funzione dei parametri di configurazione della stessa). tutte le operazioni successive saranno invisibili al codice del documento (cioè non è necessario che il documento sappia se la stampante usa il dhithering, un retino, o quale risoluzione di stampa si sta utilizzando..

Pages: 1 2 3 4
%d bloggers like this:
Skip to toolbar