Erinevus lehekülje "Printimine" redaktsioonide vahel

Allikas: Kuutõrvaja
(Töö formaadi teisendamine)
(Virtuaalne printer)
 
(ei näidata sama kasutaja 4 vahepealset redaktsiooni)
116. rida: 116. rida:
 
===Printeri saba===
 
===Printeri saba===
  
Kui kasutaja prindib, siis esmalt paigutatakse prinditavale failile vastav töö tavaliselt kataloogi /var/spool/lpd/prinerinimi alla ning kasutaja ei pea ootama seni kuni printimine on reaalselt toimunud. Sabas võivad korraga oma järjekorda oodata mitmete kasutajate tööd. Saba kataloog peab olema vaid juurkasutajale kirjutatav.
+
Kui kasutaja prindib, siis esmalt paigutatakse prinditavale failile vastav töö tavaliselt kataloogi /var/spool/lpd/prinerinimi alla ning kasutaja ei pea ootama seni, kuni printimine on reaalselt toimunud. Sabas võivad korraga oma järjekorda oodata mitmete kasutajate tööd. Saba kataloog peab olema vaid juurkasutajale kirjutatav.
  
Programmiga lpq saab uurida mis sabas toimub. Näiteks vaadata printeri ps1 saba
+
Programmiga lpq saab uurida, mis sabas toimub. Näiteks vaadata printeri ps1 saba
  
 
  bash~$ lpq -P ps1
 
  bash~$ lpq -P ps1
  
Sabast saab tõib eemaldada käsuga lprm. Näiteks soovides eemaldada printeri ps1 sabast 24-dat tööd
+
Sabast saab töid eemaldada käsuga lprm. Näiteks soovides eemaldada printeri ps1 sabast 24-dat tööd
  
 
  bash~$ lprm -P ps1 24
 
  bash~$ lprm -P ps1 24
128. rida: 128. rida:
 
===lpd deemoni juhtprogramm lpc===
 
===lpd deemoni juhtprogramm lpc===
  
Teatud juhtudel on vaja reaalse printeri töö lõpetada, näiteks tahma vahetamiseks, kuid arusaadavalt peavad kasutajad saama endiselt oma töid printida. LPD hoiab neid lihstalt seni sabas kui printer taas töötada suudab.
+
Teatud juhtudel on vaja reaalse printeri töö lõpetada, näiteks tahma vahetamiseks, kuid arusaadavalt peavad kasutajad saama endiselt oma töid printida. LPD hoiab neid lihstalt seni sabas, kui printer taas töötada suudab.
  
 
lpc kontrollib lpd deemonite tööd, kusjuures kirjeldatud olukorda on võimalik luua selliselt:
 
lpc kontrollib lpd deemonite tööd, kusjuures kirjeldatud olukorda on võimalik luua selliselt:
134. rida: 134. rida:
 
  bash~$ lpc stop ps1
 
  bash~$ lpc stop ps1
  
Kui lpc käivitada ilma argumentideta, siis läheb ta tööle interaktiivses rezhiimis.
+
Kui lpc käivitada ilma argumentideta, siis läheb ta tööle interaktiivses režiimis.
  
 
Administraatori jaoks on oluline reguleerida seoses printimisega kahte asja
 
Administraatori jaoks on oluline reguleerida seoses printimisega kahte asja
141. rida: 141. rida:
 
     * kasutajalt tulevad tööd asetatakse printeri sappa  
 
     * kasutajalt tulevad tööd asetatakse printeri sappa  
  
Selgitame oluliste lpc käskude tähendust mis reguleerivad nimetatud kahte asja, käsu süntaks on järgmine
+
Selgitame oluliste lpc käskude tähendust, mis reguleerivad nimetatud kahte asja, käsu süntaks on järgmine
  
 
lpc käsk printerinimi
 
lpc käsk printerinimi
156. rida: 156. rida:
 
               ps1 is ready and printing
 
               ps1 is ready and printing
  
       Antud juhul on näha, et printer ps1 parasjagu trükib kusjuures sabas ootavad 7 tööd. Peale selle on luubatud sappa tööde lisamine ning loomulikult printimine.
+
       Antud juhul on näha, et printer ps1 parasjagu trükib, kusjuures sabas ootavad 7 tööd. Peale selle on lubatud sappa tööde lisamine ning loomulikult
     * stop - peatada printimine, vajadusel oodatakse kuni käesolev töö lõpeb. Peatatud printeri sappa saab töid edasi saata. St printeri deemoni lõpetamist.
+
      printimine.
     * start - peatatud printeri käivitamine st. printeri deemoni käivitamine
+
     * stop - peatada printimine, vajadusel oodatakse kuni käesolev töö lõpeb. Peatatud printeri sappa saab töid edasi saata,st printeri deemoni lõpetamist
     * disable - keelatakse tööde lisamine printeri sappa. Sabas olevate tööde printimine jätkub st printeri deemon jätkab tegevust.
+
     * start - peatatud printeri käivitamine, st printeri deemoni käivitamine
 +
     * disable - keelatakse tööde lisamine printeri sappa. Sabas olevate tööde printimine jätkub, st printeri deemon jätkab tegevust
 
     * enable - keelatud sabasse saab taas töid lisada
 
     * enable - keelatud sabasse saab taas töid lisada
     * down - keelatakse sappa tööde lisamine ja lõpetatakse printeri deemon. Sama mis disable ja stop.
+
     * down - keelatakse sappa tööde lisamine ja lõpetatakse printeri deemon, sama mis disable ja stop
 
     * up - lubatakse taas printida, st käivitatakse printeri deemon, ja töid sappa asetada
 
     * up - lubatakse taas printida, st käivitatakse printeri deemon, ja töid sappa asetada
 
     * topq - tõstab sabas oleva töö järjekorras esimeseks, näiteks seame printeri ps sabas oleva töö nr 154 esimeseks 'lpc topq ps 154'
 
     * topq - tõstab sabas oleva töö järjekorras esimeseks, näiteks seame printeri ps sabas oleva töö nr 154 esimeseks 'lpc topq ps 154'
     * abort - katkestab töö printimise kuid sappa saab töid lisada
+
     * abort - katkestab töö printimise, kuid sappa saab töid lisada
     * restart - taaskäivitab printeri deemoni juhul kui see arusaamatutel põhjustel otsa lõppes  
+
     * restart - taaskäivitab printeri deemoni juhul, kui see arusaamatutel põhjustel otsa lõppes
  
 
===Võrgu printerile printimine===
 
===Võrgu printerile printimine===
  
Soovides lubada masina printerit kasutada teise masina kasutajatel tuleb tekitada näiteks seesugune /etc/hosts.lpd fail
+
Soovides lubada masina printerit kasutada teise masina kasutajatel, tuleb tekitada näiteks seesugune /etc/hosts.lpd fail
  
 
printerless.zoo.tartu.ee
 
printerless.zoo.tartu.ee
  
Kusjuures masina printerless printerite kirjeldusfailis tuleb kirjeldada üle võrgu kasutatav printer näiteks selliselt
+
Kusjuures masina printerless printerite kirjeldusfailis tuleb kirjeldada üle võrgu kasutatav printer, näiteks selliselt
  
 
  rps:\
 
  rps:\
186. rida: 187. rida:
 
===Võrguprinterile printimine===
 
===Võrguprinterile printimine===
  
Poodides jagatakse selliseid etherneti külge ühendatavaid karbikesi millele saab omistada IP aadressi ja mis põhiline, mille külge saab ühendada printeri. Selliselt tööle seatud printerit nimetatakse võrgupirnteriks.
+
Poodides jagatakse selliseid etherneti külge ühendatavaid karbikesi, millele saab omistada IP-aadressi ja mis põhiline, mille külge saab ühendada printeri. Selliselt tööle seatud printerit nimetatakse võrgupirnteriks.
  
 
  np:\
 
  np:\
197. rida: 198. rida:
 
===Virtuaalne printer===
 
===Virtuaalne printer===
  
Kui masinal tegelikult pole printerit aga mingil põhjusel vajab programm selle olemasolu, või soovite lihtsalt katsetada, siis võimaldab LPD luua virtuaalse printeri. Nii korraldatud juhul toimub trükkimine, kuid töö salvestadakse näiteks faili.
+
Kui masinal tegelikult pole printerit, aga mingil põhjusel vajab programm selle olemasolu või soovite lihtsalt katsetada, siis võimaldab LPD luua virtuaalse printeri. Nii korraldatud juhul toimub trükkimine, kuid töö salvestatakse näiteks faili.
  
 
Tekitame virtuaalse printeri nimega vp ja seame ta käima nii, et prinditud töö kirjutatakse faili /tmp/vp.ps. Iga uus kirjutab eelmise üle. Lisaks saab kasutades programmi GhostView tulemust ekraanil vaadata.
 
Tekitame virtuaalse printeri nimega vp ja seame ta käima nii, et prinditud töö kirjutatakse faili /tmp/vp.ps. Iga uus kirjutab eelmise üle. Lisaks saab kasutades programmi GhostView tulemust ekraanil vaadata.
214. rida: 215. rida:
 
  cat > /tmp/vp.ps
 
  cat > /tmp/vp.ps
  
Tukkeaeg 6 sekundit on selleks, et katsetamisel näha kuidas deemonid tulevad ja lähevad.
+
Tukkeaeg 6 sekundit on selleks, et katsetamisel näha, kuidas deemonid tulevad ja lähevad.

Viimane redaktsioon: 26. jaanuar 2007, kell 12:37


BSD-stiilis printimine

Tavaliselt on UNIXi printimine korraldatud nö BSD-stiilis, mis tähendab, et kasutatakse LPD-d (Line Printer Daemon). LPD-le vastav programmide komplekt on kaasas praktiliselt kõigi levitavate UNIXitega. Et selles veenduda, tuleb teha kindlaks näiteks programmi lpd olemasolu.

Süsteemi käivitamisel alustab teiste seas tööd süsteemi printerideemon lpd, lugedes läbi printerite kirjeldusfaili /etc/printcap ning jääb edasisi korraldusi ootama.

Olgu süsteemis kaks printerit, ps1 ja ps2, mis parasjagu on oma töid saatnud trükki ja muidu printimisega tegelevad mitmed kasutajad. Seda olukorda kirjeldab LPD seisukohast selline skeem

süsteemi 
   lpd 
    |
    |  
     - lpd -  'lpr -P ps2 /home/priit/lilleke.ps' - printeri ps2 sappa töö lisamine 
    |
     - lpd -  'lprm -P ps1 154' - printeri ps1 sabast töö eemaldamine
    |
     - lpd -  /var/spool/lpd/ps1 - printerile ps1 sabast tööde saatmine
    |
     - lpd -  /var/spool/lpd/ps2 - printerile ps2 sabast tööde saatmine

Süsteemi lpd ülesandeks on iga tulnud korraldusega seada tegelema uus lpd ja ise jääda ootama järgnevaid korraldusi.

Antud juhul on ta tekitanud neli lpd'd

   * Ülemine lpd tegeleb töö saatmisega sappa ehk printeri spuuli. Nimelt LPD printimissüsteem töötab selliselt, et kõik trükitavad tööd asetatakse esmalt
     sappa ja trükitakse siis, kui see on süsteemile sobiv. Saba on kataloog, kus printimiseks mõeldud tööd ajutiselt oma järge ootavad.
   * Ülevalt teine lpd tegeleb kasutaja korraldusega eemaldada printeri ps1 sabast töö number 154.
   * Kaks alumist lpd-d tegelevad printimisega, st nad saadavad printeri sabadest töid printeritesse. 

Põhimõtteliselt piisab PostScript faili trükkimiseks PostScript printerile käsust

bash~$ cat lilleke.ps > /dev/lp0

kus /dev/lp0 on printerile vastav seade, kuid seda ei maksa kasutada muidu, kui ainult katsetamiseks.

Tuuma konfigureerimine

Printimiseks kasutatakse tavaliselt arvuti paralleelporti ühendatud printerit, mille tarvis tuleb kernelisse kompilleerida sisse vastav toetus. Tehke sellised valikud, 2.2.xx kerneli ja PC korral

   General Setup ->     Parallel port support
                           PC-style hardware

Character Devices ->     Parallel printer suppor

Peale printeri juhtme ühendamist veenduge, et arvuti BIOSis on printer lubatud ning tema IRQ ja IO ei ole konfliktis teiste seadmete ressurssidega.

Teiseks levinud võimaluseks on kasutada võrguprinterit. Sel juhul pole vaja kernelisse ülaltoodud toetust kompilleerida.

Printerite kirjeldusfail

See fail on lpd konfiguratsioonifail ning selles on defineeritud kõik printerid, mida süsteemi kasutajad saavad kasutada. Igale printerile vastab üks sektsioon, kus näidatakse vastav füüsilise printeri seade. Lisaks saab trükitavate tööde mahtu piirata ning filtrite abil käigult töid erinevatesse formaatidesse teisendada ja printerite kasutust logida.

Lihtsamal juhul, kui te kasutate PostScript printerit ning soovite trükkida PostScript faili, piisab printer kirjeldada näiteks selliselt

# postscript printer

ps1:\
        sd=/var/spool/lpd/ps1:\
        mx#0:\
        sh:\
        lp=/dev/lp0


Printeri kirjeldusfaili süntaksi näeb ette, et parameetrid eraldatakse kooloniga (:) ning nad asuvad ühes reas. Rida saab jätkata kasutades kurakaldu (\) viimase sümbolina real.

Näites kasutatud parameetrite tähendused:

   * ps1 - printeri nimi, mida kasutatakse printeri poole pöördumisel
   * sd - printeri saba kataloog, sellesse paigutatakse printimiseks saadetud tööd oma järge ootama
   * mx#0 - näitab maksimaalse prinditava töö suurust; 0 tähendab, et lubatakse printida kuitahes suuri töid
   * sh - (supress heades) näitab, et mitte trükkida esimest lehte, kus on vaikimisi kirjas info printeri kasutaja ja tema töö kohta
   * lp - printerile vastav füüsiline seade 

Kui printeri kirjeldusfailis defineeritakse mitu printerit, siis eraldatakse vastavad sektsioonid omavahel ühe või mitme reavahetusega. Märgiga # algavaid ja tühje ridu ignoreeritakase.

Printeri filter

Töö formaadi teisendamine

Kui teil on kasutada PostScript printer ning te soovite trükkida näiteks Pine'ist ning kontrollida tulemuse välimust, siis on otstarbekas seada tööle filter, mis teisendab ASCII teksti näiteks programmiga a2ps vastavaks PostScriptiks ning see saadetakse edasi printerile

  1. ascii printer
asc1:\
       sd=/var/spool/lpd/asc1:\
       mx#0:\
       sh:\
       lp=/dev/lp0:\
   	if=/var/spool/lpd/asc1/a2ps-filter

Kusjuures filter on kooriku skript, näiteks seesugune

Scripti tarvitamise idee seisneb selles, et kui kasutaja tarvitab tavalisel moel printerit asc1, näiteks

bash~$ w | lpr -P asc1

siis suunatab lpr talle antud faili filtri sisendisse ja filter suunab omakorda enda väljundi, mis on eeldatavasti juba PostScript printeriseadmes.

Teine tüüpiline teisendus tehakse siis, kui teil on kasutada mitte PostScript printer. Sel juhul peate te kasutama filtrina näiteks programmi GhostScript, mis teisendab PostScript faile talle tuntud printerite keelde, näiteks PCL (Printer Command Language). Omades HP LaserJet 4L printerit, võib kasutada sellist filtrit

#!/bin/sh
cat | gs -q -dSAFER -dNOPAUSE -sPAPERSIZE=a4 -sDEVICE=ljet4 -sOutputFile=- -

Kasutatud GhostScripti võtmed

   * q - ei anna teateid
   * dSAFER - ei luba PostScriptil teha karme asju, näiteks faile kustutada
   * dNOPAUSE - trükib järjest
   * dPAPERSIZE - määrab paberi suuruse
   * sDEVICE - näitab millise printeri keelde teisendatakse
   * sOutputFile - kuhu väljund suunatakse

Printeri saba

Kui kasutaja prindib, siis esmalt paigutatakse prinditavale failile vastav töö tavaliselt kataloogi /var/spool/lpd/prinerinimi alla ning kasutaja ei pea ootama seni, kuni printimine on reaalselt toimunud. Sabas võivad korraga oma järjekorda oodata mitmete kasutajate tööd. Saba kataloog peab olema vaid juurkasutajale kirjutatav.

Programmiga lpq saab uurida, mis sabas toimub. Näiteks vaadata printeri ps1 saba

bash~$ lpq -P ps1

Sabast saab töid eemaldada käsuga lprm. Näiteks soovides eemaldada printeri ps1 sabast 24-dat tööd

bash~$ lprm -P ps1 24

lpd deemoni juhtprogramm lpc

Teatud juhtudel on vaja reaalse printeri töö lõpetada, näiteks tahma vahetamiseks, kuid arusaadavalt peavad kasutajad saama endiselt oma töid printida. LPD hoiab neid lihstalt seni sabas, kui printer taas töötada suudab.

lpc kontrollib lpd deemonite tööd, kusjuures kirjeldatud olukorda on võimalik luua selliselt:

bash~$ lpc stop ps1

Kui lpc käivitada ilma argumentideta, siis läheb ta tööle interaktiivses režiimis.

Administraatori jaoks on oluline reguleerida seoses printimisega kahte asja

   * töid saadetakse sabast printerile, st printeri deemon töötab
   * kasutajalt tulevad tööd asetatakse printeri sappa 

Selgitame oluliste lpc käskude tähendust, mis reguleerivad nimetatud kahte asja, käsu süntaks on järgmine

lpc käsk printerinimi

käsud:

   * status - saab vaadata printerinimelise printeri seisu, näiteks
     bash# lpc status ps1
     ps1:
             queuing is enabled
             printing is enabled
             7 entries in spool area
             ps1 is ready and printing
     Antud juhul on näha, et printer ps1 parasjagu trükib, kusjuures sabas ootavad 7 tööd. Peale selle on lubatud sappa tööde lisamine ning loomulikult
     printimine.
   * stop - peatada printimine, vajadusel oodatakse kuni käesolev töö lõpeb. Peatatud printeri sappa saab töid edasi saata,st printeri deemoni lõpetamist
   * start - peatatud printeri käivitamine, st printeri deemoni käivitamine
   * disable - keelatakse tööde lisamine printeri sappa. Sabas olevate tööde printimine jätkub, st printeri deemon jätkab tegevust
   * enable - keelatud sabasse saab taas töid lisada
   * down - keelatakse sappa tööde lisamine ja lõpetatakse printeri deemon, sama mis disable ja stop
   * up - lubatakse taas printida, st käivitatakse printeri deemon, ja töid sappa asetada
   * topq - tõstab sabas oleva töö järjekorras esimeseks, näiteks seame printeri ps sabas oleva töö nr 154 esimeseks 'lpc topq ps 154'
   * abort - katkestab töö printimise, kuid sappa saab töid lisada
   * restart - taaskäivitab printeri deemoni juhul, kui see arusaamatutel põhjustel otsa lõppes

Võrgu printerile printimine

Soovides lubada masina printerit kasutada teise masina kasutajatel, tuleb tekitada näiteks seesugune /etc/hosts.lpd fail

printerless.zoo.tartu.ee

Kusjuures masina printerless printerite kirjeldusfailis tuleb kirjeldada üle võrgu kasutatav printer, näiteks selliselt

rps:\
      sd=/var/spool/lpd/rp:\
      rm=printeriga.zoo.tartu.ee:\
      rp=ps1:\
      lp=/dev/null:\
      sh:

Kui masina printerless kasutajad prindivad printerile rps, siis saadetakse töö edasi üle võrgu masina printeriga.zoo.tartu.ee printerile nimega ps1.

Võrguprinterile printimine

Poodides jagatakse selliseid etherneti külge ühendatavaid karbikesi, millele saab omistada IP-aadressi ja mis põhiline, mille külge saab ühendada printeri. Selliselt tööle seatud printerit nimetatakse võrgupirnteriks.

np:\
           lp=/dev/null:\
           sh:\
           sd=/var/spool/lpd/np:\
           rm=192.168.1.15:\
	    rp=raw:

Virtuaalne printer

Kui masinal tegelikult pole printerit, aga mingil põhjusel vajab programm selle olemasolu või soovite lihtsalt katsetada, siis võimaldab LPD luua virtuaalse printeri. Nii korraldatud juhul toimub trükkimine, kuid töö salvestatakse näiteks faili.

Tekitame virtuaalse printeri nimega vp ja seame ta käima nii, et prinditud töö kirjutatakse faili /tmp/vp.ps. Iga uus kirjutab eelmise üle. Lisaks saab kasutades programmi GhostView tulemust ekraanil vaadata.

vp:\
       sd=/var/spool/lpd/vp:\
       mx#0:\
       sh:\
       lp=/dev/null:\
       if=/var/spool/lpd/vs/vp.file:

kus filter vs.file on selline

#!/bin/sh
sleep 6
cat > /tmp/vp.ps

Tukkeaeg 6 sekundit on selleks, et katsetamisel näha, kuidas deemonid tulevad ja lähevad.