Naprej Nazaj Kazalo

6. Čakalniško programje

Do nedavna so imeli uporabniki Linuxa preprosto izbiro -- vsi so uporabljali stari lpd, prepisan skoraj dobesedno iz kode Net-2 za sisteme BSD. Tudi dandanes večina prodajalcev prilaga to programje. A to se začenja spreminjati. Sistemi, podobni SVR4, skupaj s Sunovim Solarisom, prihajajo s povsem drugačnim tiskalniško čakalnim (spooling) paketom, osredotočenim na lpsched.

Danes so na voljo številni dobri sistemi, med katerimi lahko izbirate. Opisujem jih spodaj; preberite opise in se odločite. PDQ je najpreprostejši sodobni sistem z grafičnim vmesnikom; primeren je tako za osnovno domačo rabo kakor (v hibridni sestavi pdq/lprng) v številnih velikih okoljih. Za poslovno rabo s pretežno omrežnimi tiskalniki postscript je dobra alternativa vmesniški program kot GPR z LPRng; izbire PPD obdeluje neposredno in ima rahlo prijaznejši vmesnik. V drugih primerih je dobra izbira CUPS; tudi ta ima izvrstno podporo postscriptnim tiskalnikom, IPP, Ima spletni vmesnik in številne druge odlike.

6.1 LPD

LPD (angl. Line Printer Daemon), prvotni tiskalniški strežnik iz sistemov BSD Unix, je bil leta in leta standard v Unixu. Na voljo je v vsaki vrsti Unixa in ponuja bolj minimalen nabor lastnosti, izpeljanih iz potreb računalništva deljenih časov (angl. timesharing-era computing). Kljub tej nekam čudni zgodovini je danes še vedno uporaben kot osnovno tiskalniški čakalniški strežnik. Da bi bil zares uporaben s sodobnim tiskalnikom, je treba precej dodatnega dela v obliki spremljajočih filtrirnih skriptov in vmesniških programov. A ti so na voljo in LPD deluje.

LDP je tudi ime omrežnega tiskalniškega protokola, ki ga določa RFC 1179. Ta omrežni protokol govori ne le sam strežnik LPD, temveč pravzaprav katerikoli omrežni tiskalniški strežnik, omrežni tiskalnik in katerikoli program za čakalno tiskanje (angl. print spooler), ki je na voljo; LPD je najmanjši skupni imenovalec omrežnega tiskanja, ki temelji na standardih.

LPRng (glej razdelek LPRng) je dosti boljša izvedba osnovne zasnove LPD od navadne; če morate uporabljati LPD, premislite, ali bi raje uporabljali LPRng. Precej manj vuduja bo treba, da ga prepričate v to, kar bi radi, in kar že je vuduja, je dobro dokumentiran.

Po svetu kroži veliko izvirnih kod LPD. Neka vrsta BSD Unixa je verjetno uradni lastnik, a vsakdo izvaja spremembe, kakor mu je drago, in vse te se križajo na neznane načine, tako da je težko natanko reči, kateri LPD imate. Od že pripravljenih LPD VA Linux ponuja enega z nekaj drobnimi spremembami, ki naredijo uporabniški vmesnik bolj fleksibilen. Paket SourceForge LPD podpira zastavico -o v ukazni vrstici; izbire se potem prenesejo filtrom. To je podobno lastnostim, ki jih ponuja precej tradicionalnih izdelovalcev Unixa, in podobno (čeprav nezdružljivo) kot makor mehanizem z izbiro -z v LPRng.

Uporabniški vmesniki za LPD

Če se odločite za LPD, je najbolje, da ga uporabljate prek uporabniškega vmesnika. Kar nekaj jih je, med katerimi lahko izbirate; GPR (glej Tiskalniška orodja z grafičnim uporabniškim vmesnikom) in XPDQ (glej razdelek PDQ) sta morda najboljša. So pa tudi drugi; povejte mi zanje.

6.2 PDQ

PDQ je nedemonski tiskalniški sistem, ki ima vgrajeno in razumno skladnjo za nastavitev gonilnika. To vključuje možnost deklaracij tiskalniških izbir in orodje z grafičnim vmesnikom ali ukazno vrstico, ki mu je moč podati te izbire; uporabniki dobijo prijetno pogovorno okno, v katerem podajo ločljivost, dupleksiranje, vrsto papirja itd. (glej sliko 7).

Slika 6. Glavno okno XPDQ. snapshot-xpdq-main.gif

Poganjanje vseh filtrov kot uporabnik ima številne prednosti: možni varnostni problemi v postscriptu večinoma izginejo, večdatotečna opravila v LaTeXu se lahko učinkovito natisnejo kot datoteke DVI in tako naprej.

To je to, kar zdaj uporabljam; napisal sem datoteke s specifikacijami za svoje tiskalnike in precej jih je vključenih v distribucijo, zato je mnogo primerov, na katerih lahko gradite svoje. Napisal sem tudi nekaj orodij, ki avtomatizirajo izdelavo specifikacij gonilnika, da bi pomagal preostanku med vami.

PDQ ni brez napak: najopazneje je, da obdela celotna opravila, preden jih pošlje tiskalniku. To pomeni, da za velika opravila PDQ preprosto ni praktičen -- lahko se vam stotine megabajtov prepisuje sem ter tja po disku. Še slabše, za počasnejše gonilnike, kot so tisti za boljše brizgalnike, se opravilo ne bo začelo tiskati, dokler ghostscript in gonilnik ne končata obdelovanja. To je lahko še precej minut po oddaji.

Če imate mnogo uporabnikov, mnogo tiskalnikov ali kaj drugega kompleksnejšega, priporočam, da uporabljate PDQ kot uporabniški vmesnik za omrežno tiskanje po protokolu LPD (na lokalnem stroju lahko tiskate prek protokola LPD). V večini teh primerov pa namesto uporabe tradicionalnega lpd iz BSD v ozadju priporočam LPRng.

Slika 7. Okno z izbirami gonilnika v XPDQ: SNAPSHOT-XPDQ-OPTIONS

6.3 LPRng

Nekateri distributerji Linuxa (skupaj s podjetjem Caldera) ponujajo LPRng, dosti manj zastarelo izvedbo tiskalniškega čakanja. LPRng je precej lažje upravljati na velikih namestitvah (beri: več kot en tiskalnik, katerikoli zaporedni tiskalniki ali katerikoli čudni omrežni tiskalniki ne-lpd) in ima manj strašljivo naključno programsko osnovo kakor običajni lpd. Paket LPRng se lahko tudi povsem upravičeno pohvali, da je varno zasnovan -- ni nobenih binarnih datotek SUID in podpira avtentifikacijo s PGP ali Kerberos.

LPRng tudi vključuje nekaj primerov nastavitev za pogoste omrežne tiskalnike, večinoma vrste HP LaserJet, ki vključujejo nekaj možnosti zaračunavanja. Če želite več podatkov o LPRng, preverite spletno stran LPRng Web Page. LPRng uporablja bolj ali manj enak osnovni filtrirni model kakor lpd v BSD, zato se podpora LPD, ki jo ponujam na svojem spletnem mestu, nanaša tudi na LPRng. To vam lahko pomaga učinkovito uporabljati proste programske gonilnike za veliko tiskalnikov.

LPRng se razširja bodisi pod licenco GPL ali pa pod umetniško licenco (angl. Artistic license).

6.4 PPR

PPR je postscriptno usmerjen tiskalniški čakalni program, ki vključuje osnovno zmožnost razčlenjevanja postscripta, iz česar izpelje precej prijetnih lastnosti. Vključuje dobre zmožnosti obračunavanja opravil, dobro podporo odjemnikom Appletalk, SMB in LPD ter mnogo boljše upravljanje napak kakor lpd. PPR lahko, kot vsak tu omenjeni čakalni program, kliče ghostscript, da dela tudi z nepostscriptnimi tiskalniki.

Za PPR sem izvedel šele pred nedavnim; ne poznam nikogar, ki bi ga preskusil. Napisan je bil na Trinity College, kjer ga tudi uporabljajo. Licenca je v slogu BSD; prost za uporabo, a z omembo avtorstva.

Glede na dokumentacijo je nekam eksperimentalen. Zmaličena postscriptna opravila se nočejo tiskati; namesto tega se bodo odbila in uporabnik mora popraviti postscript. To je lahko za nekatera okolja neprimerno, čeprav večina uporabnikov generira postscript z malim številom generatorjev dobro definiranega postscripta, zato verjetno to ne bo prevelik problem.

6.5 CUPS

Zanimiv novinec je CUPS, izvedba internetnega protokola za tiskanje (angl. Internet Printing Protocol, IPP), standard RFC za nadomestilo starega (in pomanjkljivega) protokola LPD, podoben HTTP. Izvedbo sistema CUPS je vodil Michael Sweet iz podjetja Easy Software Products; CUPS se razširja pod GPL.

Končno sem opravil nekaj dela s CUPS in res deluje tako, kot ga oglašujejo. Vključuje vrsto zelo dobrih lastnosti, tudi razumno delo z izbirami spletnega vmesnika in vmesnikov v ukazni vrstici ter filtrirnega sistema, temelječega na MIME, z močno podporo postscriptu. Ker je tako nov, ima še nekaj hroščev in v tem trenutku (različica 1.1) ga je težko priporočati za velike ali varne namestitve. Je pa dobra rešitev za manjše namestitve ali posebej velike namestitve z uporabniki, ki jim zaupamo.

Podobno kakor druge sisteme lahko tudi CUPS uporabljate z večino gonilnikov. Žal je nekam težko prikrojiti poljuben gonilnik za uporabo s CUPS -- vsaj, če želite, da delujejo vse izbire -- zato je najbolje poiskati datoteko PPD in filtrirni skript, da usposobite svoj gonilnik. S sistemom CUPS lahko uporabljate vsaj štiri nabore gonilnikov:

CUPS-O-Matic

Moj spletno zasnovani sistem CUPS-O-Matic lahko izdeluje primerne datoteke PPD za rabo s katerimkoli tiskalniškim gonilnikom, katerega vse podrobnosti so vnesene v zbirko podatkov o tiskanju v Linuxu (angl. Linux Printing Database). PPD se uporablja skupaj s skriptom v ozadju, imenovanim cupsomatic. CUPS-O-Matic uporablja gonilnike, ki so prosto programje. Trenutno se osredotočam bolj na pravilnost kot na popolnost, zato je v resnici podprtih le nekaj gonilnikov. To se bo sčasoma spremenilo.

Gonilniki za CUPS in KUPS

Projekt za izdelavo gonilnikov za CUPS zbira datoteke PPD, uporabne bodisi s tiskalniki postscripta ali filtrom v ozadju, imenovanim ps2gs2raw. Te datoteke PPD uporabljajo gonilnike, ki so prosto programje. KUPS je spremljajoči program za prikrojitev.

Datoteke PPD za postscript

CUPS lahko neposredno uporablja datoteke PPD za postscriptne tiskalnike, ki jih prilaga izdelovalec. Pogosto so na voljo kot gonilniki za tiskalnik v Windows ali pa jih najdemo na spletni strani izdelovalca. Adobe prav tako razširja datoteke PPD za številne postscriptne tiskalnike.

ESP Print Pro

Podjetje Easy Software Products, Inc. prodaja CUPS v paketu z zbirko lastniških gonilnikov. Čeprav ti niso prosto programje, poganjajo številne pogoste tiskalnike. Paket je nekam drag, če ga merimo po ceni enega podprtega tiskalnika, a vsekakor ima svoje mesto. Ti gonilniki sicer ne slovijo kot zelo dobri, so pa nekako vseobsegajoči in tudi povprečna kakovost tiskanja je boljša kakor obtežilnik za papir.

Program neodvisnega izdelovalca, XPP (glej sliko 4), ponuja zelo prijeten grafični uporabniški vmesnik funkcionalnosti CUPS, skupaj s čudovitim vmesnikom za izbire tiskanja (prikazane na sliki sliki 5). Za podatke o uporabi XPP glej razdelek XPP.

--------------


Naprej Nazaj Kazalo