User Tools

Site Tools


teoriske_osnove_štampanje_na_unix-u

Štampanje na Unix-u tradicionalno je jedna od najtežih stvari koja je dosta pojednostvljena poslednjih godina. U prošlosti su se na Unix sistem povezivali matrični štampači koji su mogli da štampaju samo ASCII tekst. Jedan od osnovnih zahteva koji je Unix štamparski sistem morao da ispuni je da omogući štampanje višestrukim korisnicima na štampaču koji u principu nije ni bio fizički povezan sa radnim stanicama ili terminalom na kojoj su oni radili. U tom cilju potrebno je kreirati program koji će ne samo komunicirati sa štampačem i korisnicima koji nisu fizički povezani sa štamparskim serverom već će biti u stanju da prihvatiti zahteve korisnika za štampanje i držati ih u privremenom direktorijumo dok štampač koji je zauzet ne postane slobodan za novi posao. Ovaj koncept je poznat pod popularnim imenom spooling (“Simultaneous Peripheral Off-line Output Listing”). Pomenut program takođe mora raditi kao daemon da bi zadovoljio iznenadne zahteve korisnika za uslugama.

Tradicionalno BSD sistemi uključuju u svoju bazu LPD spooling system. U medjuvremenu da bi zadovoljili veoma viskoke i komplikovane zahteve koje pred spooling sistem postavlja štampanje u korporacijama ili na fakultetima razvijeno je vise drugih spooling systema. Najpoznatiji su LPRng koji je revizija LPD spooling systema i puno popularniji spooling system CUPS razvijen oko 2000 godine. CUPS po prvi put uvodi bitnu novinu i novi mrežni protokol IPP (Internet Printing Protocol) koga govore i Windows mašine. Raniji mrežni protokol LPD još uvek je u upotrebi i većina štampača koji su spremini za mrežno štampanje ga govori.

Za kućne upotrebe LPD je najbolji spooling system zbog svoje jednostavnosti. U principu da bi mogli da bi počeli sa štampanjem na štampaču koji je direktno povezan za kompjuter dovoljno je editovat /etc/rc.conf fajl sa informacijama o štampaču i pokrenuti LPD daemon ili iz komandne linije ili editovanje rc scripta. Na OpenBSD systemu dovoljno je editovati /etc/rc.conf.local

lpd_flags=NO 

i rebootovati. Ako je štampač povezan na server potrebno je takođe editovati /etc/hosts.lpd fajl na serveru sa imenima klienta kojim je dozvoljeno štampanje. Strukura default /etc/printcap fajla koji je uključen u osnovu sistema je veoma jednostavna.

$ more printcap 
#       $OpenBSD: printcap,v 1.4 2003/03/28 21:32:30 jmc Exp $

# lp|local line printer:\
       :lp=/dev/lp:sd=/var/spool/output:lf=/var/log/lpd-errs:

#rp|remote line printer:\
#       :lp=:rm=printhost:rp=lp:sd=/var/spool/output:lf=/var/log/lpd-errs:

Ako je štampač povezan za paralelnu portu /dev/lpt0 dovoljno je editovati /etc/printcap.conf fajla dodavanjem imena štampači, imena uređaja (/dev/lpt0),

$ more printcap 
#       $OpenBSD: printcap,v 1.4 2003/03/28 21:32:30 jmc Exp $

 lp|local line printer:\
       :lp=/dev/lpt0:sd=/var/spool/output:lf=/var/log/lpd-errs:

#rp|remote line printer:\
#       :lp=:rm=printhost:rp=lp:sd=/var/spool/output:lf=/var/log/lpd-errs:

Da bi mogli da pošaljete štampaču ASCII code dovoljno je editovati ovlašćenja na device node fajlu

#chown daemon /dev/lpt0

ubacite svoje ime u grupu daemon

# vi /etc/group
daemon:*:1:daemon,Oko_sa_Bagdale

i opet startujete lpd.

Glavni deo stampanja u realnom životu (slike, dokumenta koja ne sadrže samo ASCII kod) se obavlja u filterima i drajverima. Pre nego što objasnimo šta su filteri i drajveri potrebno je da razumemo kako se grafika opisuje na praznom papiru koji je ubačen u vaš štampač. Osamdesetih godina prošlog veka HP je u tu svrhu razvio specijalni programski jezik PostScriptPlava Knjiga. Svi kvalitetni printeri su u stanju da razumeju PostScript programski jezik zahvaljujuci procesorima koji su ugrađeni u sam štampač.

Filteri su aplikacije koje svaki fajl koji je poslat nać štampač prevode u PostScript. Poznati filteri su Ghostscript-a koji je vlasnišvo Aladdini korporacije ili GNU a.ps koji je u stanju da konvertuje ASCII kode u PostScript. Ako je vaš štampač u stanju da razume PostScript i ako ste dovoljno samosvesni da svaki fajl konverzujete u PostScript pre slanja na štampač gornji /etc/printcap fajl i opisana konfiguracija će vam biti dovoljna da štampate slike i bilo kakva dokumenta.

$lpr -Pime_stampaca ime_fajla.ps

Na žalost jeftiniji (u prošlosti ni skuplji štampači) ne govore PostScript jezik jer je jezik visokog nivoa i zahteva dobar procesor na štampaču i dosta memorije. Puno je jednostavnije postaviti slabiji procesor koji će pričati siromasniji jezik koji je razumnjiv štampačiu ali ne i ljudima.

Drajveri su programi koji prevode PostScript fajl u nešto sto je razumnjivo štampaču koji govori neki “jednostavniji” jezik. Poznati jezik nižeg nivoa je PCL Printer Command Language takođe razvijen od strane HP korporacije. U praksi se pored PCL koriste još par jezika (svaka firma koja je pravila štampače je pokušala da napravi jedan). Drajveri su grupisani u par velikih paketa: Ghostscript, Gutenprint, HPLIP, Splix i foo2zjs. Pojedine kompanije poput Brother-a imaju i vlasničke drajvere koji su navodno pisani za Unix ali u principu rade samo na Linux-u.

Korišćenje drajvera kao i popularnog CUPS spooling sistema za enterprise štampanje će biti detaljno opisano u posebnim člancima. Ovaj wiki članak završavamo sa par napomena.

U principu je uvek bolje kupiti štampac koji govori PostScrip jezik. Većina laserskih štampača boljeg kvaliteta će pričati PostScript. Veċina inkjet štampač nisu u stanju da pričaju PostScript jezik. Iz tog razloga velika je verovatnoća da će neuki kućni korisnik morati koristi drajvere da bi kompenzovao nedostatke jeftinog hardware-a koji poseduje. Editovanje /etc/printcap fajla postaje nešto komplikovanije jer je neophodno opisati filtere i drajvere koji će biti korišćeni u procesu štampanje. Iz tog razloga u prošlosti su razvijene mnogobrojne scripte i applicakcije koje će vam pomoći da editujete printcap. Poznati primeri su foomatic-filter(Perl Script), apsfilter (Perl Script), Magicfilter (C program) ili IFHP filter specijalno pisan za LPRng. Manje je poznato da Ghostscript paket u sebi uključuje scriptu koja će generisti input filter liniju u printcap fajl-u.

PPD fajl koji se koristi u popularnom CUPS sistemu za štampanje je samo opis štampača koji ne govori PostScript jezik i njgovih tehničkih sposobnosti CUPS spooling systemu. CUPS zapravo ima svoj ugrađen Post Script filter koji prevodi razno razne fajlove u PostScript. CUPS-PPD se zapravo koriste da bi CUPS izabrao ispravni paket u kome je sadržan drajver kao i sam drajver za odgovarajuci štampač. Drajveri su kao što smo ranije spomenuli sadržani u paketima Ghostscript, Gutenprint, HPLIP, Splix ili foo2zjs.

U ekstremnim slučajevima printeri neće moći da govore ništa sem sirovog signal koda ili jednostavnog vlasničog jezika za koga ne postoji drajver (prevodioc) is PostScript jezika. Takvi printeri su neupotrebljivi i poznati pod imenom Win printeri. Lexmark i Brother inkjet printeri su uglavnom WinPrinteri.

Toplo preporučujemo sledeći članak.

Link

kao i Link to Linux Printing koja je prava riznica informacija o štampanju na Unix/Linux-u

teoriske_osnove_štampanje_na_unix-u.txt · Last modified: 2017/04/28 10:25 (external edit)