CUPS oferă un mecanism care permite ca lucrările de imprimare să fie trimise la imprimante într-un mod standard. Datele de tipărire ajung la un programator care trimite lucrările la un sistem de filtrare care convertește lucrările de tipărire într-un format pe care imprimanta îl va înțelege. Sistemul de filtrare transmite apoi datele către un backend – un filtru special care trimite datele de imprimare către un dispozitiv sau o conexiune de rețea. Sistemul utilizează pe scară largă PostScript și rasterizarea datelor pentru a converti datele într-un format potrivit pentru imprimanta de destinație.

CUPS oferă un sistem de imprimare standard și modularizat care poate procesa numeroase formate de date pe serverul de imprimare. Înainte de CUPS, era dificil de găsit un sistem standard de gestionare a imprimantei care să se adapteze la varietatea foarte mare de imprimante de pe piață care utilizează propriile limbaje și formate de imprimare. De exemplu, sistemele de tipărire System V și Berkeley erau în mare măsură incompatibile între ele și necesitau scripturi complicate și rezolvări pentru a converti formatul de date al programului într-un format imprimabil. Adesea, acestea nu puteau detecta formatul de fișier care era trimis la imprimantă și, prin urmare, nu puteau converti automat și corect fluxul de date. În plus, conversia datelor era efectuată pe stații de lucru individuale, mai degrabă decât pe un server central.

CUPS permite producătorilor de imprimante și dezvoltatorilor de drivere de imprimantă să creeze mai ușor drivere care funcționează nativ pe serverul de imprimare. Procesarea are loc pe server, permițând o imprimare bazată pe rețea mai ușoară decât în cazul altor sisteme de imprimare Unix. Cu Samba instalat, utilizatorii pot adresa imprimantele de pe computerele Windows aflate la distanță, iar driverele PostScript generice pot fi utilizate pentru imprimarea în rețea.

ProgramatorEdit

Programatorul CUPS implementează Protocolul de imprimare pe Internet (IPP) prin HTTP/1.1. O aplicație ajutătoare (cups-lpd) convertește cererile de protocol Line Printer Daemon (LPD) în IPP. Planificatorul oferă, de asemenea, o interfață bazată pe web pentru gestionarea lucrărilor de imprimare, pentru configurarea serverului și pentru documentația despre CUPS însuși.

Un modul de autorizare controlează ce mesaje IPP și HTTP pot trece prin sistem. Odată ce pachetele IPP/HTTP sunt autorizate, acestea sunt trimise către modulul client, care ascultă și procesează conexiunile primite. Modulul client este, de asemenea, responsabil pentru executarea programelor CGI externe, după cum este necesar, pentru a susține imprimantele, clasele și monitorizarea și administrarea stării lucrărilor pe web. După ce acest modul și-a procesat cererile, le trimite la modulul IPP, care efectuează validarea URI (Uniform Resource Identifier) pentru a împiedica un client să ocolească orice control de acces sau autentificare pe serverul HTTP. URI este un șir de text care indică un nume sau o adresă care poate fi folosită pentru a se referi la o resursă abstractă sau fizică dintr-o rețea.

Programatorul permite clase de imprimante. Aplicațiile pot trimite cereri către grupuri de imprimante dintr-o clasă, permițând planificatorului să direcționeze lucrarea către prima imprimantă disponibilă din acea clasă. Un modul de lucrări gestionează lucrările de imprimare, trimițându-le către procesele de filtrare și backend pentru conversia finală și imprimare și monitorizând mesajele de stare de la aceste procese.

Programatorul CUPS utilizează un modul de configurare, care analizează fișierele de configurare, inițializează structurile de date CUPS și pornește și oprește programul CUPS. Modulul de configurare va opri serviciile CUPS în timpul procesării fișierelor de configurare și apoi va reporni serviciul atunci când procesarea este finalizată.

Un modul de logare se ocupă de logarea evenimentelor programatorului pentru fișierele jurnal de acces, eroare și pagină. Modulul principal se ocupă de timeout-uri și de expedierea cererilor de I/O pentru conexiunile clienților, de urmărirea semnalelor, de gestionarea erorilor și ieșirilor proceselor copil și de reîncărcarea fișierelor de configurare a serverului, după cum este necesar.

Alte module utilizate de programator includ:

  • modulul MIME, care gestionează un tip MIME (Multipurpose Internet Mail Extensions) și o bază de date de conversie utilizată în procesul de filtrare care convertește datele de tipărire într-un format adecvat pentru un dispozitiv de tipărire;
  • un modul PPD care gestionează o listă de fișiere PPD (Postscript Printer Description);
  • un modul de dispozitive care gestionează o listă de dispozitive disponibile în sistem;
  • un modul de imprimante care gestionează imprimantele și PPD-urile din cadrul CUPS.

Filter systemEdit

CUPS permite utilizatorilor să trimită diferite date către serverul CUPS și să le convertească într-un format pe care imprimanta îl va înțelege și va putea imprima

CUPS poate procesa o varietate de formate de date pe serverul de imprimare. Acesta convertește datele de imprimare în limba/formatul final al imprimantei printr-o serie de filtre. Folosește tipurile MIME pentru identificarea formatelor de fișiere.

Baze de date MIMEEdit

După ce sistemul CUPS a atribuit sarcina de imprimare planificatorului, aceasta este transmisă sistemului de filtre CUPS. Acesta convertește datele într-un format adecvat pentru imprimantă. În timpul pornirii, daemonul CUPS încarcă două baze de date MIME: mime.types care definește tipurile de fișiere cunoscute pentru care CUPS poate accepta date și mime.convs care definește programele care procesează fiecare tip MIME în parte.

Fila mime.types are sintaxa:

mimetype { | }

De exemplu, pentru a detecta un fișier HTML, ar fi aplicabilă următoarea intrare:

text/html html htm \

printable(0,1024) + (string(0,"<HTML>") string(0,"<!DOCTYPE"))

A doua linie potrivește conținutul fișierului cu tipul MIME specificat, determinând că primul kilooctet de text din fișier conține caractere imprimabile și că aceste caractere includ marcaje HTML. Dacă modelul de mai sus se potrivește, atunci sistemul de filtrare va marca fișierul ca fiind de tip MIME text/html.

Filmul mime.convs are sintaxa:

source destination cost program

Câmpurile sursă desemnează tipul MIME care este determinat prin căutarea în fișierul mime.types, în timp ce câmpul destinație enumeră tipul de ieșire solicitat și determină ce program trebuie utilizat. Acesta este, de asemenea, preluat din mime.types. Câmpul cost ajută la selectarea seturilor de filtre atunci când se convertește un fișier. Ultimul câmp, program, determină ce program de filtrare trebuie utilizat pentru a efectua conversia datelor.

Câteva exemple:

text/plain application/postscript 50 texttopsapplication/vnd.cups-postscript application/vnd.cups-raster 50 pstorasterimage/* application/vnd.cups-postscript 50 imagetopsimage/* application/vnd.cups-raster 50 imagetoraster

Proces de filtrareEdit

Procesul de filtrare funcționează prin preluarea datelor de intrare preformatate cu șase argumente:

  1. identificarea lucrării de tipărire
  2. numele utilizatorului
  3. numele lucrării
  4. numărul de exemplare de tipărit
  5. orice opțiune de tipărire
  6. numărul fișierului (deși acest lucru nu este necesar dacă a fost redirecționat de la intrarea standard).

Determină apoi tipul de date care sunt introduse și filtrul care va fi utilizat prin utilizarea bazelor de date MIME; de exemplu, datele de imagine vor fi detectate și procesate printr-un anumit filtru, iar datele HTML detectate și procesate printr-un alt filtru.

CUPS poate converti datele furnizate fie în date PostScript, fie direct în date raster. Dacă sunt convertite în date PostScript, se aplică un filtru suplimentar numit prefilter, care trece datele PostScript printr-un alt convertor PostScript, astfel încât să poată adăuga opțiuni specifice imprimantei, cum ar fi selectarea intervalelor de pagini pentru imprimare, setarea modului n-up și alte lucruri specifice dispozitivului. După ce s-a efectuat prefiltrarea, datele pot fi trimise direct la un backend CUPS, dacă se utilizează o imprimantă PostScript, sau pot fi transmise unui alt filtru, cum ar fi Foomatic de la linuxprinting.org. Alternativ, ele pot fi transmise către Ghostscript, care convertește PostScript într-un format intermediar CUPS-raster. Formatul raster intermediar este apoi transmis către un filtru final care convertește datele raster într-un format specific imprimantei. Filtrele implicite incluse în CUPS includ:

  • raster în PCL
  • raster în ESC/P sau ESC/P2 (un limbaj pentru imprimante Epson, acum înlocuit în mare parte de noul lor format ESC/P-Raster)
  • raster în Dymo (o altă companie de imprimante).
  • raster către Zebra Programming Language sau ZPL (un limbaj de tipărire Zebra Technologies)

Începând cu 2009, alte limbaje proprietare, cum ar fi GDI sau SPL (Samsung Printer Language) sunt acceptate de Splix, un traducător raster către SPL.

Cu toate acestea, mai multe alte alternative se pot integra cu CUPS. HPLIP (cunoscut anterior sub numele de HP-IJS) oferă drivere Linux+CUPS pentru imprimantele HP, Gutenprint (cunoscut anterior sub numele de Gimp-Print) este o gamă de drivere de imprimantă de înaltă calitate pentru imprimante (în mare parte) cu jet de cerneală, iar TurboPrint pentru Linux are o altă gamă de drivere de imprimantă de calitate pentru o gamă largă de imprimante.

BackendsEdit

Backends sunt modalitățile prin care CUPS trimite date către imprimante. Există mai multe backend-uri disponibile pentru CUPS: porturi paralele, seriale și USB, cups-pdf PDF Virtual Printing, precum și backend-uri de rețea care funcționează prin intermediul protocoalelor IPP, JetDirect (AppSocket), Line Printer Daemon („LPD”) și SMB.

Un nou mdns backend în CUPS 1.4 oferă descoperirea imprimantelor bazată pe Bonjour (DNS-SD). În CUPS 1.6, este, de asemenea, acceptată descoperirea și partajarea imprimantelor Bonjour folosind Avahi.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.