Limbajul imprimantelor HP: PCL

Formatul PCL (Hewlett-Packard Printer Control Language) este un limbaj de comandă pentru imprimante laser si cu jet de cerneală. El a fost elaborat de firma Hewlett-Packard si este extrem de potrivit pentru transmiterea imaginilor către imprimante laser.

Avantaje: PCL este limbajul cel mai răspândit pentru comanda imprimantelor laser si este unul din cele mai compacte formate pentru imagini.

Dezavantaje: Refacerea unei imagini poate cere, în cazul cel mai defavorabil, simularea întregului model de redare a imaginii de către imprimantă.

Generalităti

PCL este un flux de date folosit pentru controlul imprimantelor laser Hewlett-Packard sau a celor compatibile. El include comenzi pentru: formatarea textului unei pagini, schimbarea fonturilor, încărcarea fonturilor soft si realizarea multor altor operatiuni de imprimare.

În forma sa cea mai simplă, un flux de date PCL este un sir de caractere ASCII care sunt transmise către imprimantă. În acest flux de date pot fi incluse secvente escape - secvente de caractere care încep cu caracterul ASCII Escape (27 zecimal sau 1B hexazecimal); acestea specifică diferite operatiuni pentru imprimantă.

Descrierea formatului

Comenzile PCL au două forme. Cea mai simplă comandă este formată din două caractere: un ESC urmat de o literă sau de o cifră. De exemplu, „ESC E" initializează imprimanta.

Comenzile mai complicate sunt denumite comenzi parametrizate. O astfel de comandă contine un caracter ESC, un caracter de punctuatie si o literă mică; împreună, acestea definesc categoria comenzii. Urmează un parametru optional (un număr zecimal cu semn) si o literă mare care identifică o anumită comandă. De exemplu „ESC & a 13 R" fixează pozitia de imprimare în rândul 13, iar „ESC & a 20 C" fixează pozitia de imprimare în coloana 20.

Adesea este necesar să i se trimită imprimantei mai multe comenzi pe un singur rând. Dacă două sau mai multe comenzi sunt din aceeasi categorie, acele comenzi pot fi combinate. În comanda combinată, caracterul ESC si cele două caractere comune se includ numai în prima comandă, iar litera finală a comenzilor va fi literă mică - cu exceptia ultimei comenzi. Cele două comenzi din exemplul anterior se pot combina astfel: „ESC & a 13 r 20 C".

Unele comenzi, mai ales cele pentru imagini grafice rastru, sunt urmate de date binare pentru imagine. Deoarece în datele binare poate să apară orice secventă de biti, comanda care este urmată de datele binare va stabili numărul de octeti care trebuie să fie cititi.

Geometria hârtiei

Imprimantele HP folosesc un model geometric clar, cu originea în coltul din stânga sus. Pozitia cursorului de imprimare poate fi specificată în trei unităti: puncte, puncte zecimale si rânduri sau coloane. Un punct reprezintă 1/300 toli - rezolutia imprimantelor laser. Un punct zecimal reprezintă o zecime din punctul imprimantei, adică 1/720 toli. Înăltimea si lătimea rândului sau coloanei depind de spatierea selectată pentru verticală si pentru orizontală. Implicit, o coloană are 1/10 toli - corespunzând la 10 caractere/tol, iar un rând are 1/6 toli - corespunzând la 6 linii/tol.

Imprimantele laser au o „pagină logică" mai mică decât dimensiunile fizice ale hârtiei. Implicit, ea are înăltimea întreagă a paginii si este cu 1/4 toli mai îngustă pe fiecare latură a paginii fizice. Pagina logică are si ea margini care sunt, implicit, câte 1/2 toli în partea superioară si în partea inferioară a paginii.

O imprimantă LaserJet poate să listeze fie cu marginea de dimensiune mai mică a hârtiei în partea de sus a imaginii (portrait), fie cu marginea de dimensiune mai mare a hârtiei în partea de sus a imaginii (landscape).

Rezolutia rastrului

Imaginile rastru pot fi afisate cu 300, 150, 100 sau 75 puncte/tol. Deoarece rezolutia fizică a imprimantei este 300 dpi, la rezolutii mai mici imprimanta va afisa fiecare pixel ca un pătrat cu latura de două, trei sau patru puncte.

Formatul imaginii

Setul complet de comenzi pentru desenarea unei imagini rastru este: initializarea imprimantei; fixarea orientării si pozitiei paginii; fixarea rezolutiei; începerea graficii rastru; datele pentru imagine, rând cu rând; sfârsitul graficii rastru.

O imagine rastru LaserJet poate fi imprimată direct (ca imagine de sine stătătoare) sau poate fi inclusă într-o imagine de pagină creată cu un alt program. În primul caz, este bine să pozitionăm imaginea si să fixăm rezolutia. În al doilea caz, programul care produce imaginea mai mare va fixa el pozitia si rezolutia, astfel încât imaginea nu trebuie să mai contină aceste comenzi.

Initializarea imprimantei

Comanda pentru initializarea imprimantei este

ESC E 

Imaginile de sine stătătoare vor începe întotdeauna cu această comandă.

Fixarea orientării

Orientarea implicită a paginii este portrait. Comanda:

ESC & 1 1 O 

fixează orientarea în landscape. Uzual, imaginile rastru se imprimă în orientare portrait chiar dacă imaginea globală este landscape. Comanda

ESC & r 0 F 

fixează orientarea rastru conform orientării globale. Schimbarea orientării paginii începe o pagină nouă; de aceea imaginile incluse nu vor folosi niciodată aceste comenzi.

Pozitia

Pozitia orizontală a cursorului se fixează cu:

ESC & a N C 
ESC & a N H 
ESC * p N X 

Aceste comenzi fixează pozitia cursorului, respectiv, în coloane, puncte zecimale si puncte. Dacă numărul N este cu semn, pozitionarea se face relativ la pozitia curentă; în caz contrar, ea se face relativ la marginea din stânga.

Pozitia verticală a cursorului se fixează cu:

ESC & a N R 
ESC & a N V 
ESC * p N Y 

Aceste comenzi fixează pozitia cursorului, respectiv, în rânduri, puncte zecimale si puncte. Dacă numărul N este cu semn, pozitionarea se face relativ la pozitia curentă; în caz contrar, se ea face relativ la marginea superioară.

Rezolutia

Comanda pentru fixarea rezolutiei imaginilor rastru este:

ESC * t N R 

Valoarea N poate fi 75, 100, 150 sau 300. Imaginile de sine stătătoare trebuie să fixeze rezolutia.

Datele pentru imagine

Imaginea constă dintr-o comandă de începere a graficii, câte o comandă de date de imagine pentru fiecare rând - optional cu comenzi pentru fixarea modului de comprimare si o comandă de terminare a graficii.

Comanda de începere a graficii este:

ESC * r 1 A

Comanda pentru transferarea unui rând de date este:

ESC * b N W date_imagine

und N este numărul de octeti de date ale imaginii care urmează. Desi fiecare rând are aceeasi lungime logică, numărul de octeti transmisi pentru un rând poate varia deoarece rândurile comprimate vor avea lumgimi diferite. Chiar si în datele necomprimate, nu este necesar să se transmită spatiile albe de la sfârsitul fiecărui rând. Comanda pentru terminarea graficii este: ESC * r B.


(C) Copyright Computer Press Agora