Tiskanje v Linuxu, HOWTO <author>Grant Taylor <tt/<gtaylor+pht@picante.com>/ <date>v3.26, 15. februar 1999 <abstract> To je slovenski prevod spisa <em/Linux Printing HOWTO/ z dne 15. februarja 1999. Vsebuje podatke o ustvarjanju, predogledu, tiskanju in faksiranju česarkoli pod Linuxom (in v splošnem pod drugimi Unixi). </abstract> <toc> <sect>Uvod <p> Spis <em/Printing HOWTO/ naj bi vseboval vse, kar morate vedeti o nastavljanju tiskalniških opravil na vaših računalnikih z Linuxom. Kot je tudi sicer pogosto v življenju, je to malo bolj zapleteno od miškarskega sveta podjetij Microsoft in Apple, a zato tudi malo bolj fleksibilno in prav gotovo lažje za upravljanje na velikih lokalnih omrežjih. <p> Ta spis je strukturiran tako, da bo večina ljudi morala prebrati le prvo polovico. Večina tukaj zbranih bolj obskurnih in od položaja odvisnih informacij je v drugi polovici, in jo lahko zlahka najdete v kazalu, medtem ko bodo podatke, zbrane v razdelkih 9 in 10, verjetno potrebovala večina ljudi. <p> Ker je različica 3.x ponovno napisan spis, je veliko podatkov iz prejšnjih izdaj izgubljenih. To je storjeno načrtno, saj so natisnjeni prejšnji HOWTO-ji obsegali 60 strani in premogli pripovedovalno nit mrtve želve. Če tukaj ne najdete odgovora, vas spodbujamo, da (a) pregledate prejšnje angleške verzije na spletni strani <url url="http://www.picante.com/~gtaylor/pht/" name="Printing HOWTO Home Page"> in (b) mi pošljete sporočilo, kaj bi moralo biti tukaj, pa ni. <p> Na spletni strani <url name="Printing HOWTO Home Page" url="http://www.picante.com/~gtaylor/pht/"> najdete zadnjo angleško originalno verzijo tega spisa, seveda jo najdete tudi na Metalabu (<tt/metalab.unc.edu/) in vašem prijaznem lokalnem zrcalnem strežniku LDP. Slovenska spletna različica je dostopna na <url url="http://www.lugos.si/delo/slo/HOWTO-sl/Printing-HOWTO-sl.html">, tekstovna, postscriptna, DVI, PDF in SGML pa na <url url="ftp://ftp.lugos.si/pub/lugos/doc/HOWTO-sl/">. <sect1>Zgodovina <p> To je tretja generacija, se pravi, tretja popolna predelava, spisa <em/Printing HOWTO/ (PHT). Kronologija je takšna: <enum> <item>Zaradi preveč vprašanj o tiskanju v novičarski skupini comp.os.linux, sem leta 1992 napisal <em/printing-howto/ in ga objavil. Ta spis je prehitel projekt HOWTO-jev za nekaj mesecev in je bil prvi spis imenovan ,howto`. Ta izdaja je bila v navadni kodi ASCII. <item>Po vključitvi v projekt HOWTO-jev se je spis <em/Printing-HOWTO/ združil s spisom <em/Lpd FAQ/ Briana McCauleya <tt/<B.A.McCauley@bham.ac.uk>/; skupaj sva soavtorjevala novonastalemu PHT nekako dve leti. Na določeni točki sva vključila delo Karla Auerja <tt/<Karl.Auer@anu.edu.au>/. Ta generacija PHT je bila pisana v formatu TeXinfo, in dostopna v formatih PostScript, HTML, ASCII in Info. <item>Po več kot leto trajajočemu gnitju in propadanju spisa PHT, in neuspešnem poskusu pridobitve novega vzdrževalca, sem ponovno napisal tole različico. Ta generacija spisa PHT je v formatu Linuxdoc-SGML (po novem se imenuje ,paket SGML-Tools`). </enum> <sect1>Pravna zaščita <p> Ta dokument je pravno zaščitil © Grant Taylor. Prosim, kopirajte in razširjajte ga na široko, a ne spreminjajte besedila ali izpuščajte mojega imena. <p> Slovenski prevajalec je Roman Maurer in za slovenski prevod velja takisto. <sect>Kako tiskati <p> Če ste že nastavili tiskalniški strežnik <tt/lpd/ za izpis na vašem tiskalniku, ali je to namesto vas storil upravnik vašega sistema ali prodajalec sistema, se morate le še naučiti uporabe ukaza <tt/lpr/. To področje in področje upravljanja s tiskalniškimi vrstami pokriva spis <url name="Printing Usage HOWTO" url="http://www.lugos.si/delo/slo/HOWTO-sl/Printing-Usage-HOWTO-sl.html">. <p> Če pa imate, po drugi strani, nov sistem ali nov tiskalnik, boste tako ali drugače morali nastaviti tiskalniška opravila, preden boste lahko z njim tiskali. Berite naprej! <sect>Tiskalniške naprave jedra <sect1>Naprava lp <p> Jedro sistema Linux (<=2.1.32), poskrbi za eno ali več od naprav <em>/dev/lp0</em>, <em>/dev/lp1</em>, in <em>/dev/lp2</em>, če ste le podporo teh naprav vključili med prevajanjem ali posebej naložili (izhod <tt>cat /proc/devices</tt> mora vsebovati napravo lp, če je naložena). Te naprave se <bf/ne/ določajo dinamično, pač pa vsaka naprava ustreza določenemu strojnemu vhodno/izhodnemu (V/I) naslovu. To pomeni, da je lahko vaš prvi tiskalnik znan kot naprava <em/lp0/ ali <em/lp1/, odvisno od vaše strojne opreme. Le preizkusite oboje. <p> Nekateri uporabniki so poročali, da sistem ne zazna njihovih dvosmernih vrat lp, če uporabljajo starejši enosmerni tiskalniški kabel. Preverite, da imate spodoben kabel. <p> Gonilnikov za plip in lp ne morete poganjati hkrati na katerihkoli že vratih. Lahko pa imate kadarkoli en ali drug gonilnik naložen ročno, ali s <tt/kerneld/ različice jedra 2.x (ali poznih 1.3.x). Če pozorno nastavite prekinitve in podobne zadeve, lahko baje poganjate plip na enih vratih in lp na drugih. Neka oseba je storila tako s popravljanjem gonilnikov; željno pričakujem poročilo o uspehu nekoga, ki mu je to uspelo le z bistro ukazno vrstico. <p> Obstaja majhen pripomoček imenovan <tt><url url="http://www.picante.com/~gtaylor/pht/man/tunelp.8.html" name="tunelp"></tt>, s katerim lahko (kot <em/root/) uglasite uporabo prekinitev naprave lp v Linuxu, <em/polling rate/, in druge izbire. <p> Jedro (od 1.3.x naprej) bo sprejelo izbiro <tt/lp=/ za nastavitev prekinitev ali V/I naslovov, če je ta možnost vgrajena v jedro: <tscreen><verb> When the lp driver is built in to the kernel, you may use the LILO/LOADLIN command line to set the port addresses and interrupts that the driver will use. Syntax: lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]] For example: lp=0x378,0 or lp=0x278,5,0x378,7 ** Note that if this feature is used, you must specify *all* the ports you want considered, there are no defaults. You can disable a built-in driver with lp=0. </verb></tscreen> <p> Če je podpora naložena kot modul v jedru različice Linuxa 2 ali zadnjih 1.3.x, je mogoče določiti V/I naslove in prekinitvene vrstice v ukazni vrstici za klic <tt/insmod/ (ali v <em>/etc/conf.modules</em>, če naj prizadene kerneld) z uporabo običajne skladnje. Parametri so <tt/io=port0,port1,port2/ in <tt/irq=irq0,irq1,irq2/. Preberite stran o ukazu <em><url url="http://www.picante.com/~gtaylor/pht/man/insmod.1.html" name="insmod"></em> v referenčnem priročniku za več informacij o tem. <p> **Za tiste med vami, ki (kot jaz) nikoli ne najdete standardnih številk vrat, ko jih potrebujete, so podane v drugem primeru zgoraj. Druga vrata (<em/lp0/) so na naslovu 0x3bc. Pojma nimam, katero prekinitev navadno uporabljajo. <p> Izvorna koda gonilnika vzporednih vrat v Linuxu je v datoteki <tt>/usr/src/linux/drivers/char/lp.c</tt>. <sect1>Naprava parport (jedra >= 2.1.33) <p> Začenši z jedri 2.1.33 (in na voljo kot popravek za jedro 2.0.30), je naprava <em/lp/ le odjemalec nove naprave <em/parport/. Naprava <em/parport/ dodatno odpravlja veliko težav, ki so morile stari gonilnik naprave <em/lp/ -- lahko deli vrata z drugimi gonilniki, dinamično dodeljuje dostopna vzporedna vrata številkam naprav, namesto, da vsiljuje fiksno korespondenco med V/I naslovi in številkami vrat, in tako naprej. <p> Prihod naprave <em/parport/ je omogočil množico novih gonilnikov za vzporedna vrata za stvari, kot so pogoni ZIP, CD-ROM-i, diski Backpack, in tako naprej. Nekateri od teh gonilnikov so na voljo tudi v različicah za jedra 2.0.x; ozrite se po Spletu. <p> Gonilnik <em/parport/ bom obdelal podrobneje, ko ga bom začel uporabljati tudi sam. Do takrat lahko preberete datoteko <htmlurl url="http://www.cyberelk.demon.co.uk/parport/parport.txt" name="Documentation/parport.txt"> v izvorni kodi vašega jedra, ali pogledate na <url url="http://www.cyberelk.demon.co.uk/parport.html" name="spletno stran parport">. <sect1>Naprave na zaporednih vratih <p> Naprave na zaporednih vratih se v Linuxu običajno imenujejo podobno kot <em>/dev/ttyS1</em>. Pripomoček <tt><url url="http://www.picante.com/~gtaylor/pht/man/stty.1.html" name="stty"></tt> vam bo dovoljeval interaktivni pregled ali nastavitev zaporednih vrat; <tt><url name="setserial" url="http://www.picante.com/~gtaylor/pht/man/setserial.8.html"></tt> vam pomaga nadzorovati nekaj dodatnih atributov in nastaviti prekinitve (IRQ) in V/I naslove za nestandardna vrata. Več o zaporednih vratih v Linuxu lahko najdete v spisu <url url="http://metalab.unc.edu/mdw/HOWTO/Serial-HOWTO.html" name="Serial-HOWTO">. <p> Če uporabljate počasen zaporedni tiskalnik s kontrolo pretoka (<em/flow control/), lahko ugotovite, da so nekatera od vaših tiskalniških opravil odrezana. To je lahko zaradi zaporednih vrat, katerih privzeto obnašanje je čiščenje neprenešenih znakov iz vmesnega pomnilnika po 30 sekundah od trenutka zaprtja naprave za ta vrata. Vmesni pomnilnik lahko vsebuje do 4096 znakov, in če vaš tiskalnik uporablja kontrolo pretoka in je dovolj počasen, da ne more sprejeti vseh podatkov iz vmesnega pomnilnika niti po 30 sekundah, ko tiskalniško programje zapre zaporedna vrata, se zadnji del vsebine vmesnega pomnilnika izgubi. Ta problem lahko diagnosticirate z ukazom <tscreen><verb> cat datoteka > /dev/ttyS2 </verb></tscreen> Če ta ukaz popolnoma izpiše krajše datoteke, daljše pa le odrezano, tiči zajec v tem grmu. <p> 30-sekundni časovni interval lahko nastavite kot izbiro <tt/closing_wait/ v ukazni vrstici za klic <tt/setserial/ (različica 2.12 in poznejše). Zaporedna vrata stroja se navadno inicializirajo s klicem <tt/setserial/ v zagonski datoteki <tt/rc.serial/. Klic za nastavitev tiskalniških zaporednih vrat lahko spremenite tako, da vstavite <tt/closing_wait/ hkrati z drugimi izbirami za nastavitev teh vrat. <sect>Podprti tiskalniki <p> Jedro Linuxa največkrat podpira vsak tiskalnik, ki ga priklopite na zaporedna ali vzporedna vrata, a obstajajo stvari, pri katerih morate biti previdni, in tiskalniki, ki jih ne boste mogli uporabiti, četudi lahko (električno mišljeno) komunicirajo z Linuxom. V glavnem so med temi nezdružljivimi tiskalniki tisti, ki se zanašajo na ,,<em/Windows Printing System/``. (Pogosto so nedoločno označeni z oznako ,,<em/for Windows/``, ali imenovani ,,tiskalniki <em/GDI/``.) Ti tiskalniki <em>ne delujejo</em> z Linuxom. Sploh nimajo nobene ,,<em/pameti/``, in se zanašajo na procesor računalnika za opravljanje večine dela, ki ga je tradicionalno moral opravljati tiskalnikov procesor. Žal se to delo lahko opravi le z gonilniki, ki jih dobavi proizvajalec, in ki delujejo le pod Microsoft Windows. Torej ne kupujte takšnih tiskalnikov za uporabo v Linuxu. (Če že imate tak tiskalnik, obstajajo ovinki, ki prepričajo Linux, da tiska na njem, a so precej nerodni in jih sam nikoli nisem preizkusil. Glejte razdelek ,,<ref id="forwinonly" name="Tiskalniki le-za-Windows">`` v tem sestavku.) <sect1>Postscriptni tiskalniki <p> Kar se tiče tiskalnikov, ki <em/pa/ delujejo z Linuxom, je najboljša izbira nakup tiskalnika z vgrajeno podporo za PostScript. Skoraj vse programje v Unixu izdeluje tiskalniški izhod v PostScriptu, torej je očitno lepo imeti tiskalnik, ki direktno podpira PostScript. Žal je podpora PostScriptu redka izven področja laserskih tiskalnikov, in navadno predstavlja drag dodatek. <p> Programje za Unix in založniška industrija na splošno sta posvojila Postscript kot standardni tiskalniški krmilni jezik. To se je zgodilo zaradi večih razlogov: <descrip> <tag/Timing/Postscript je bil sestavni del tiskalnika Apple Laserwriter, popolnega spremljevalca računalniku Macintosh in tiskalnika, ki je v veliki meri odgovoren za revolucijo namiznega založništva v osemdesetih letih. <tag/Je neodvisen od naprave/Programe v Postscriptu lahko poženete tako, da tvorijo izhod na točkovnem zaslonu, vektorskem zaslonu, faksirni napravi, ali tiskalniškem mehanizmu skoraj katerekoli vrste, brez sprememb izvornega programa. Postscriptni izhod bo izgledal enako na katerikoli postscriptni napravi, vsaj v mejah zmogljivosti tiskalnika. Pred stvaritvijo oblike PDF so ljudje izmenjevali na zvezi kompleksne spise v obliki Postscript. Edini razlog, da se ta standard ni ,,prijel`` je bil, da stroji z Windows navadno niso vključevali pregledovalnikov za Postscript, zato je podjetje Adobe določilo hiperpovezave in komprimiranje za Postscript, ter rezultatu reklo ,,PDF``, razširjalo pregledovalnike za novo obliko in našlo tržišče za njihova ,,precejevalna`` orodja (Adobe Distiller). Vendar sem malce skrenil s poti ... <tag/Je pravi programski jezik/Postscript je popoln programski jezik; v njem lahko pišete programe, ki počnejo skoraj karkoli. To je predvsem uporabno za določanje podprogramov na začetku vašega programa za večkratno reprodukcijo zapletenih zadev v vašem spisu: tako lahko določite logotipe ali velik napis ,,VZOREC`` v ozadju. <tag/Je odprt standard/Postscript je popolnoma določen v javno dostopnih knjižnih zbirkah (ki jih lahko najdete v vsaki dobri knjigarni). Čeprav ga je razvil Adobe in ponuja njegove poglavitne komercialne izvedbe, tudi drugi proizvajalci, kot Aladdin, izdelujejo neodvisno napisane izvedbe. </descrip> <sect1>Nepostscriptni tiskalniki <p> Če nimate (večjega) proračuna, potrebnega za nakup tiskalnika PostScipt, lahko uporabljate katerikoli tiskalnik, ki ga podpira Ghostscript, prosti interpreter za PostScript, uporabljan namesto pravega tiskalnika s postscriptno podporo. Spletna stran <url url="http://www.cs.wisc.edu/~ghost/" name="Ghostscript Home Page"> vsebuje seznam podprtih tiskalnikov in podatke o statusu novih in poskusnih gonilnikov. Vedite, da ta stran našteva tiskalnike, podprte v zadnji različici Ghostscripta, medtem, ko večina distribucij Linuxa izhaja z nekako zastarelimi različicami Ghostscripta, zaradi licence. Na srečo obstaja navadno vnaprej pakirana sveža različica Ghostscripta, dostopna v področju s prispevki (angl. contrib area) posameznih distribucij. Prosim, pomagajte izboljšati spletno stran o podpori tiskalnikov v Ghostscriptu s svojimi poročili o uspehu ali neuspehu, kot zahtevajo. <p> Podjetje Adobe ima zdaj nov tiskalniški jezik imenovan ,,PrintGear``. Mislim, da gre za zelo poenostavljen jezik v binarnem formatu z nekaj dediščine PostScripta, a brez združljivosti z njim. In nisem slišal, da bi ga Ghostscript podpiral. A nekateri tiskalniki PrintGear podpirajo druge jezike kot PCL, in ti tiskalniki bodo delovali v Linuxu (le če se izvedba PCL nahaja v tiskalniku in ne v gonilniku za Windows). <sect1>Zapiski, specifični tiskalnikom <p> Ta razdelek je, in bo vedno, nepopoln. A katerakoli informacija, ki sem jo dal, mora biti vedno pravilna, torej pojdimo: <descrip> <tag/Canon/Canon izdeluje vrsto brizgalnih tiskalnikov. <descrip> <tag/Canon BJ-10ex/ Neko poročilo predlaga, da bo vaš Canon deloval veliko bolje v načinu <em/Epson LQ/ (nastavite ga s stikalom dip). Menda je bil izhod v načinu <em/Canon/ prekinjen ali napačen. Čeprav je v Ghostscriptu zelo eksplicitna podpora za Canon, torej imate lahko srečo. <tag/BJ-200/Modela 200 in 210 delujeta v črno-belem načinu. Glejte <url url="http://linux.fastethernet.net/canon-bj.html" name="stran Patricka Lamberta"> za več informacij. <tag/BJC-4000/Mnogi tiskalniki iz serije 4000 delujejo z gonilnikom bjc600. <tag/BJC-7000/Nekateri ali vsi tiskalniki serije 7000 so namenjeni le tiskanju v Windows; Canon noče izdati podrobnosti o programiranju teh tiskalnikov. </descrip> <tag/Lexmark/ Lexmark (včasih del podjetja IBM, se mi zdi) izdeluje veliko tiskalnikov; vendar je veliko od njih tiskalnikov le za Windows, vključno z: <itemize> <item>Color Jetprinter 1000 <item>Color Jetprinter 1020 (a ne Business Edition) <item>Color Jetprinter 2030 <item>Color Jetprinter 2050 <item>Color Jetprinter 2070 <item>Color Jetprinter 7000 (vendar berite nadaljevanje) <item>Color Jetprinter 7200 <item>Winwriter 100 <item>Winwriter 150c <item>Winwriter 200 </itemize> Drugi tiskalniki Lexmark lahko delujejo ali pa tudi ne. <descrip> <tag/Optra Color 40 in 45/Vse vrste reči, kot so poravnava, nalaganje kasete, in tako naprej, se opravljajo pod programskim nadzorom (v Windows). Vendar je Lexmark priskrbel C-jevski program za Unix, s katerim lahko izvedete te stvari v Linuxu. Dostopen je z mojega <url url="http://www.picante.com/~gtaylor/download/printing/cartutil.c" name="področja za jemanje">. Hvala Daleu Sniderju za nadlegovanje Lexmarka in pridobitev tega programa. <tag/Jetprinter 7000/Obstaja zgodnji <url url="http://bimbo.fjfi.cvut.cz/~paluch/l7kdriver/" name="gonilnik"> Henryka Palucha, ki ponuja črnobelo tiskanje ločljivosti 600 dpi. Mogoče bo ta gonilnik deloval tudi s tiskalniki Lexmark modelov 3200, 5000, 5700 ali 7200, vendar to ni bilo preizkušeno in bo verjetno potrebno dodatno uglaševanje. </descrip> <tag/Epson/ S shemo Uniprint v Ghostscriptu 5.x so dobro podprti različni modeli Epson Stylus Color. Glejte <url name="domačo stran Michaela Holvea" url="http://eunuchs.org/epson/index.html"> za več informacij. <tag/NEC SuperScript/ NEC-ove serije poceni tiskalnikov ponujajo podporo PCL in PrintGear in so v splošnem privlačni tiskalniki. Žal je, v večini teh modelov, podpora PCL omejena na PCL nivoja 4.5, ki omogoča tiskanje le na 300 dpi. Nivoji PCL 5e, 6, in višji omogočajo izhod s 600 dpi. <tag/Hewlett Packard/ <descrip> <tag/DeskJet/ Deluje večina modelov HP DeskJet, a obstajajo različne vrste le-teh. Večina od njih je tiskalnikov PCL različice 3; za njih (in vse druge tiskalnike PCL 3) obstaja gonilnik hpdj, ki ga razširja <url url="ftp://ftp.pdb.sni.de/pub/utilities/misc/hpdj.html" name="Martin Lottermoser">. Tiskalniki 710, 720C, 722C, 820C in 1000C so tiskalniki PPA, ki se lahko uporabljajo v črnobeli tehniki s <url url="http://www.rpi.edu/~normat/technical/ppa/" name="pripomočkom pbm2ppa Toma Normana">. <tag/LaserJet/Tudi večina tiskalnikov LaserJet deluje povsem dobro. Idealna je možnost tiskanja Postscripta, a tudi brez tega bo delovala podpora za PCL, ki jo ponuja Ghostscript. <tag/JetDirect/S tiskalniki HP, opremljenimi s tehnologijo JetDirect (tj., ethernetni tiskalniki), lahko upravljate z uporabo programja <url url="http://www.hp.com/go/webjetadmin" name="WebJet">, ki ga HP ponuja za Linux. </descrip> </descrip> <sect>Katero čakalniško programje? <p> Do nedavnega je bila izbira uporabnikov Linuxa preprosta -- vsi so uporabljali dobri stari <tt/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, vključno s Sunovim Solarisom, prihajajo s povsem drugačnim tiskalniško čakalnim (<em/spooling/) paketom, osredotočenim na <tt/lpsched/. In obstajajo znaki, da bodo nekateri prodajalci Linuxa prestopili k ponudbi LPRng, precej manj antični izvedbi tiskalniškega čakanja, ki je prosto dostopna. LPRng je precej lažja za upravljanje na velikih namestitvah (berite: več kot en tiskalnik, katerikoli zaporedni tiskalniki ali katerikoli čudni omrežni tiskalniki ne-lpd) in ima manj strašljivo naključno programsko osnovo kot običajni <tt/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. <p> Trenutno je, čeprav v luči novih možnosti, lpd verjetno v redu za večino uporabnikov Linuxa. Čeprav ni najsodobnejši sistem, deluje v redu, ko je enkrat nastavljen, in je dobro razumljiv in obširno dokumentiran v raznih knjigah o Unixu. <p> Če želite več podatkov o LPRng, preverite spletno stran <url name="LPRng Web Page" url="http://www.astart.com/lprng/LPRng.html">. Prihodnje različice tega HOWTO-ja bodo vključevale informacije o uporabi tako LPRng, kot tudi običajnega lpd. <sect>Kako to deluje, osnova <p> Če želite pravilno usposobiti tiskanje, morate razumeti, kako deluje sistem lpd. <p> Lpd pomeni <em/Line Printer Daemon/ (pritajeni strežnik vrstičnega tiskalnika), in se nanaša v različnih kontekstih tako na tiskalniški strežnik, kot tudi na celo zbirko programov, ki poganjajo tiskalniško čakanje. Ti so: <p> <descrip> <tag><tt><htmlurl name="lpd" url="http://www.picante.com/~gtaylor/pht/man/lpd.8.html"></tt></tag> Čakalniški pritajeni strežnik. Eden od teh teče in nadzoruje vse na stroju, <bf/in/ po eden teče na vsak tiskalnik, ko tiskalnik tiska. <tag><tt><htmlurl name="lpr" url="http://www.picante.com/~gtaylor/pht/man/lpr.1.html"></tt></tag> Uporabniški čakalni ukaz. Lpr stopi v stik z lpd in vstavi novo tiskalniško opravilo v čakalno vrsto. <tag><tt><htmlurl name="lpq" url="http://www.picante.com/~gtaylor/pht/man/lpq.1.html"></tt></tag> Navede opravila v tiskalniški čakalni vrsti. <tag><tt><htmlurl name="lpc" url="http://www.picante.com/~gtaylor/pht/man/lpc.8.html"></tt></tag> Nadzorni ukaz sistema lpd. Z <tt/lpc/ lahko ustavite, zaženete, preuredite itd., opravila v tiskalniški čakalni vrsti. <tag><tt><htmlurl name="lprm" url="http://www.picante.com/~gtaylor/pht/man/lprm.1.html"></tt></tag> <tt/lprm/ odstrani opravilo iz tiskalniške čakalne vrste. </descrip> <p> Kako se to prilega skupaj? No, ko se sistem zažene, se požene lpd. S pregledom datoteke <em>/etc/printcap</em> ugotovi za katere tiskalnike bo urejal čakalne vrste. Vsakič, ko kdo požene <tt>lpr</tt>, <tt>lpr</tt> kontaktira <tt>lpd</tt> skozi <em>poimenovano vtičnico</em> (angl. named socket) <em>/dev/printer</em>, in nakrmi lpd z datoteko za izpis in nekaj podatki o tem, kdo tiska in kako naj stvar natisne. Lpd potem izpiše datoteko na primernem tiskalniku. <p> Sistem <tt>lp</tt> je bil prvotno načrtovan za vrstične tiskalnike -- se pravi, ljudje so večinoma tiskali besedila v ASCII. Izkaže pa se, da je potrebno le malo dodatnega opisa, da naredimo lpd delujoč povsem dobro za današnja tiskalniška opravila, ki so pogosto v obliki PostScript, ali dvi, ali v tekstovni obliki, ali ... <sect>Kako nastaviti zadeve, osnova <p> <sect1>Tradicionalna nastavitev lpd <p> Najmanjša sestava lpd-ja naredi sistem, ki sprejema datoteke v čakalno vrsto in jih natisne. Ne ozira se na to, ali jih vaš tiskalnik sploh razume, in vam verjetno ne bo dovoljeval izdelavo privlačnega izhoda. Vseeno je to prvi korak k razumevanju, zato berite naprej! <p> Če želite dodati tiskalniško čakalno vrsto v lpd, morate dodati vnos v datoteko <em>/etc/printcap</em>, in narediti nov čakalni imenik pod <em>/var/spool/lpd</em>. <p> Vnos v <em>/etc/printcap</em> izgleda podobno: <tscreen><verb> # LOKALNI djet500 lp|dj|deskjet:\ :sd=/var/spool/lpd/dj:\ :mx#0:\ :lp=/dev/lp0:\ :sh: </verb></tscreen> To definira čakalno vrsto, imenovano <em/lp/, <em/dj/, ali <em/deskjet/, ki čaka v imeniku <em>/var/spool/lpd/dj</em>, z nobenih omejitev velikosti za posamezno opravilo, ki tiska na napravo <em>/dev/lp0</em>, in, ki nima naslovne strani (z imenom osebe, ki tiska, ipd.) dodane v ospredje tiskalniškega opravila. <p> Zdaj z ukazom <tt>man printcap</tt> preberite stran v referenčnem priročniku za <em><htmlurl name="printcap" url="http://www.picante.com/~gtaylor/pht/man/printcap.5.html"></em> <p> Vse zgornje izgleda zelo preprosto, a tukaj je skrit kavelj -- če ne pošiljate datotek, ki jih DeskJet 500 lahko razume, bo ta DeskJet tiskal čudne stvari. Na primer, če pošljete povsem običajno tekstovno datoteko Unixa na tiskalnik <em/deskjet/, bo ta dobesedno razumel znake za novo vrstico, in dobili bomo: <tscreen><verb> To je prva vrstica. To je druga vrstica. To je tretja vrstica. </verb></tscreen> in tako naprej. Tiskanje postscriptne datoteke v to čakalno vrsto nam bo dalo čudovit izpis ukazov PostScripta, izpisanih s tem ,,stopničastim efektom``, a nobenega uporabnega izhoda. <p> Gotovo je potrebno več dela, in to je namen filtriranja. Tisti med vami, ki dobro opažate in ste prebrali referenčno stran o printcap, ste morda opazili atribute čakalne vrste (angl. <em/spool attributes/) <em/if/ in <em/of/. No, <em/if/, ali vhodni filter, je natanko to, kar tukaj potrebujemo. <p> Če napišemo majhen ukazni skript imenovan <em/filter/, ki doda znake za pomik na začetek vrste (angl. carriage return, CR) pred znake za konec vrstice, bomo s tem odpravilo stopničavost besedila. Torej moramo v naš vnos v printcap dodati vrstico z <em/if/: <tscreen><verb> lp|dj|deskjet:\ :sd=/var/spool/lpd/dj:\ :mx#0:\ :lp=/dev/lp0:\ :if=/var/spool/lpd/dj/filter:\ :sh: </verb></tscreen> Preprost filtrirni skript <tt/filter/ bi lahko bil: <tscreen><verb> #!perl # Zgornja vrstica mora v resnici vsebovati polno pot do # tolmača perl. # Ta skript mora biti izvedljiv: chmod 755 filter while(<STDIN>){chop $_; print "$_\r\n";}; # Morda boste želeli končati z znakom za izmet strani: # print "\f"; </verb></tscreen> Če naredimo zgornje, smo dobili čakalno vrsto, ki zna tiskati datoteke z običajnimi besedili v Unixu in dobi smiselne rezultate. (Da, obstaja štiri milijone boljših načinov, da napišemo ta filter, a le malo jih je nazornejših. Naredite to bolj učinkovito.) <p> Edina preostala težava je, da tiskanje navadnega teksta pravzaprav ni preveč moderno -- gotovo bi bilo bolje, če bi lahko tiskali PostScript in druge urejene ali grafične tipe izhodov. No, da, bilo bi, in to je preprosto storiti. Metoda je preprosta razširitev zgornjega filtra za popravo vrstic. Če napišete filter, ki lahko sprejme poljuben tip datoteke kot vhod in v vsakem primeru naredi izhod čistokrvnega DeskJeta, potem imate zares bister tiskalniški strežnik! <p> Tak filter se imenuje filter <em/magic/. Ne utrujajte se s pisanjem tega, razen, če morate tiskati res čudne zadeve -- na mreži obstaja veliko že napisanih. APS Filter je med najboljšimi, morda pa ima že vaša distribucija Linuxa orodje za nastavitev tiskalniških reči, ki vam vse to olajša. <sect1>Dovoljenja datotek <p> Zaradi ljudske zahteve vključujem spodaj izpis dovoljenj zanimivih datotek mojega sistema. Obstaja veliko boljših načinov, da to storite, idealno z uporabo binarnih datotek SGID in ne tako, da vse napravite SUID root, a takšen sistem sem dobil ob nakupu in zame deluje. (Povsem odkrito, če vam vaš prodajalec ne more prodati niti delujočega strežnika <tt>lpd</tt>, ste v godlji.) <tscreen><verb> -r-sr-sr-x 1 root lp /usr/bin/lpr* -r-sr-sr-x 1 root lp /usr/bin/lprm* -rwxr--r-- 1 root root /usr/sbin/lpd* -r-xr-sr-x 1 root lp /usr/sbin/lpc* drwxrwxr-x 4 root lp /var/spool/lpd/ drwxr-xr-x 2 root lp /var/spool/lpd/lp/ </verb></tscreen> <p> Lpd se mora trenutno poganjati kot root, da se lahko povezuje z nizko-oštevilčenimi vrati opravila lp. Verjetno mora po povezovanju postati UID lp.lp ali nekaj takega, a mislim da, lenuh, ne postane. <sect>Nabava tiskalniškega programja <p> Veliko vnaprej napisanih filtrirnih paketov (in drugega, s tiskalnikom povezanega, programja) je dostopnih na <url name="Metalabu" url="ftp://metalab.unc.edu/pub/Linux/system/printing/">. Tam lahko najdete pripomočke kot so psutils, a2ps, mpage, dvitodvi, flpr, itd. <p> Včasih je bilo tam zunaj precej paketov, ki so se trudili olajšati nastavitev tiskalnika. Verjetno še vedno obstajajo, a eden od najboljših in najbolj svežih je paket APS Filter Andreasa Klemma, ki ima menujsko usmerjen konfigurator datoteke printcap in ureja praktično katerikoli tip vhoda, ki si ga lahko predstavljate. Če vaš prodajalec ne priloži prijetnega orodja za nastavitev tiskalnika, je APS Filter stvar za vas. <sect>Rešitve prodajalcev <p> Ta razdelek je po definiciji nepopoln. Pošljite mi podrobnosti o vaši najljubši distribuciji. <sect1>Red Hat <p> Red Hat ima upravniško orodje z grafičnim uporabniškim vmesnikom v nadzorni plošči (<tt/control-panel/), s katerim lahko dodajate oddaljene tiskalnike in tiskalnike na lokalnih napravah. Omogoča vam izbiro tiskalnika, podprtega v GhostScriptu, in datoteko naprave Unixa, na katero naj tiska, potem namesti tiskalniško vrsto v <em>/etc/printcap</em> in izpiše kratek magični filter PostScript-in-ASCII, ki temelji na <tt/gs/ in programu <tt><htmlurl name="nenscript" url="http://www.picante.com/~gtaylor/pht/man/nenscript.1.html"></tt>. Ta rešitev deluje precej dobro in je v večini primerov enostavna za nastavitev. <p> Red Hat odpove, kadar imate tiskalnik, ki ni podprt z njihovim standardnim Ghostscriptom (ki je GNU, ne aladdin Ghostscript, in ki podpira manj tiskalnikov). Poglejte v zgornje zapiske o specifičnosti tiskalnikov in na stran o združljivosti ghostscripta s tiskalniki, če ugotovite, da ne morete izkoristiti polno zmogljivosti vašega tiskalnika z originalnim programjem Red Hat. <sect1>Debian <p> Debian ponuja izbiro med navadnim lpd in LPRng; LPRng je verjetno boljša izbira, razen, če so vaše potrebe skromne (se pravi: en sam tiskalnik na zaporednih vratih). Zdi se mi, da Debian ponuja tudi izbiro skriptov za nastavitev tiskalnika, kot sta paketa magicfilter in APC Filter; poskusite uporabiti enega od teh skriptov. <sect1>Druge distribucije <p> Prosim, pošljite mi podatke, kaj počnejo druge distribucije! <sect>Ghostscript <p> <htmlurl name="Ghostscript" url="http://www.cs.wisc.edu/~ghost/"> je neverjetno pomemben program za tiskanje v Linuxu. Večina tiskalniškega programja sistemov Unix ustvarja PostScript, ki je tipičen, 100 US$ vreden, dodatek tiskalniku. Ghostscript je, po drugi strani, prost program, in lahko ustvari jezik vašega tiskalnika iz PostScripta. Ko ga zvežete z vašim vhodnim filtrom za <tt/lpd/, vam daje navidezni postscriptni tiskalnik in neznansko poenostavi življenje. <p> Ghostscript je dostopen v dveh oblikah. Komercialna različica Ghostscripta, imenovana <em/Aladdin Ghostscript/, se lahko prosto uporablja za osebno uporabo, a ne sme biti razširjana s komercialnimi distribucijami Linuxa. V splošnem je približno leto dni pred prostim Ghostscriptom; trenutno, na primer, podpira format <em/Portable Document Format/ (PDF) za <em/Adobe Acrobat/, medtem, ko ga starejši Ghostscripti ne podpirajo. <p> Prosta različica Ghostscripta je GNU Ghostscript, in je preprosto postarana različica, ki jo je podjetje Aladdin prijazno podarilo projektu GNU. (Priznanje Aladdinu za ta dogovor; več izdelovalcev programja bi moralo tako podpirati prosto programje.) <p> Karkoli že počnete s programom <tt><htmlurl name="gs" url="http://www.picante.com/~gtaylor/pht/man/gs.1.html"></tt>, povsem se prepričajte, da ste ga pognali z izbiro za preprečitev dostopa do datotek (<tt/-dSAFER/). PostScript je polno funkcionalen jezik in slab program v PostScriptu vam lahko povzroči precejšen glavobol. <p> Ko smo že pri PDF, ta je pravzaprav le malo več kot organiziran PostScript v komprimirani datoteki. Ghostscript lahko obvlada vhod v PDF prav tako, kot lahko obvlada PostScript. Torej ste lahko prvi v vaši ulici, ki ima tiskalnik, zmožen tiskati PDF. <sect1>Klicanje Ghostscripta <p> Tipično se <tt/ghostscript/ požene s katerimkoli magičnim filtrom, za katerega se odločite, a zaradi razhroščevalnih namenov ga je pogosto priročno pognati direktno. <p> <tt>gs -help</tt> vam izpiše kratki informativni seznam izbir in dostopnih gonilnikov (bodite pozorni na to, da je to seznam gonilnikov, podprtih ob prevajanju, ne celoten seznam vseh dostopnih gonilnikov). <p> V testne namene lahko poženete <tt/gs/ takole: <tt>gs <em>izbire</em> -q -dSAFER -sOutputFile=/dev/lp1 test.ps</tt>. <sect1>Fine nastavitve izhoda Ghostscripta <p> Obstaja veliko stvari, ki jih lahko storite, če niste zadovoljni z izhodom programa <tt/gs/ (pravzaprav lahko storite karkoli se vam prekleto ljubi storiti, saj imate izvorno kodo). <sect2>Izhodni položaj in velikost <p> Položaj, velikost in <em/aspect ratio/ <!-- ? --> slike na strani, se nadzoruje v ghostscriptu z gonilnikom, odvisnim od tiskalnika. Če se vam zdi, da prihajajo vaše strani iz tiskalnika preveč kratke ali predolge, ali prevelike za faktor dve, boste morda želeli pogledati modul z izvorno kodo za vaš gonilnik in nastavili parametre, da bodo ravno pravšnji za vas. Žal je vsak gonilnik drugačen, tako da vam ne morem točno povedati, kaj morate nastaviti, a večina kode je razumno dobro komentirane. <sect2>Gama, velikost pik, itd. <p> Večina ne-laserskih tiskalnikov trpi zaradi dejstva, da so njihove pike precej velike. Rezultat je pretemna slika. Če imate ta problem, morate uporabiti svojo prenosno funkcijo (angl. transfer function). Preprosto ustvarite naslednjo datoteko v knjižničnem imeniku ghostscripta in dodajte njeno ime v klicu <tt/gs/ prav pred pravo datoteko. Morda boste morali preskušati prave vrednosti, ki ustrezajo vašem tiskalniku. Manjše vrednosti dajo svetlejši izpis. Posebej, če vaš gonilnik uporablja Floyd-Steinbergov algoritem rasterizacije barv, so nizke vrednosti (0.2--0.15) verjetno dobra izbira. <tscreen><verb> ---8<---- odrežite in posnemite kot "gamma.ps" ----8<--- %! %prenosne funkcije za CMYK (cian, škrlatna, rumena, črna) {0.3 exp} {0.3 exp} {0.3 exp} {0.3 exp} setcolortransfer ---8<------------------8<--- </verb></tscreen> <p> S temi nastavitvami je mogoče tudi popraviti tiskalnike, ki imajo nekakšne barvne napake. Če naredite kaj takega, priporočam uporabo datoteke <tt/colorcir.ps/, ki pride poleg ghostscripta (v podimeniku <tt>examples/</tt>), kot testno stran. <sect>Kako tiskati na tiskalnik prek omrežja <p> Ena od lastnosti strežnika lpd je tudi zmožnost tiskanja prek omrežja na tiskalnike, ki so fizično priključeni na drugačen stroj. S pazljivo kombinacijo filtrirnih skriptov in izbranih pripomočkov lahko pripravite <tt/lpr/ do transparentnega tiskanja na tiskalnike na vseh vrstah omrežij. <sect1>Na gostitelju z Unix/lpd <p> Če želite dovoliti oddaljenim strojem tiskanje na vašem tiskalniku, morate našteti te stroje v datoteki <em>/etc/hosts.equiv</em> ali <em>/etc/hosts.lpd</em>. (Pozor, naštetje v <em/hosts.equiv/ ima tudi druge učinke; prepričajte se, da veste, kaj počnete, če tam navedete nek stroj.) Tiskanje na svojem tiskalniku lahko dovolite tudi le posameznih uporabnikom drugih strojev s tem, da uporabite atribut <em/rs/; preberite stran ukaza <tt><htmlurl name="lpd" url="http://www.picante.com/~gtaylor/pht/man/lpd.8.html"></tt> v referenčnem priročniku. <sect2>Z <tt>lpd</tt> <p> Za tiskanje na drugem stroju napravite podoben vnos v datoteko <em>/etc/printcap</em>: <tscreen><verb> # ODDALJENI djet500 lp|dj|deskjet:\ :sd=/var/spool/lpd/dj:\ :rm=stroj.tam.nekje.ustanova.si:\ :rp=printername:\ :lp=/dev/null:\ :sh: </verb></tscreen> Opazite, da je na lokalnem stroju še vedno čakalni imenik, ki ga ureja <tt/lpd/. Če je oddaljen stroj zaseden ali ni priključen, tiskalniška opravila čakajo na lokalnem stroju, dokler jih ni mogoče poslati. <sect2>Z <tt>rlpr</tt> <p> Ukaz <em/rlpr/ lahko uporabite za pošiljanje tiskalniških opravil neposredno v čakalno vrsto oddaljenega stroja, ne da bi morali posebej nastavljati <em/lpd/. To je najbolj uporabno v položajih, ko le občasno tiskate na različne tiskalnike. Iz najave programa <em>rlpr</em>: <p> Rlpr uporablja TCP/IP za pošiljanje opravil na strežnike lpd kjerkoli na omrežju. <p> Za razliko od lpr, <bf/ni/ potrebno, da so oddaljeni tiskalniki eksplicitno znani stroju, s katerega želite tiskati (npr. prek datoteke <em>/etc/printcap</em>) in je torej precej bolj fleksibilen in potrebuje manj administracije. <p> <tt/rlpr/ lahko uporabljate povsod tam, kjer lahko uporabljate tradicionalni <tt/lpr/, in je nazaj združljiv s tradicionalnim BSD-jevim ukazom <tt/lpr/. <p> Glavna moč, ki jo daje <tt/rlpr/ je moč oddaljenega tiskanja <bf/s kjerkoli, kamorkoli/, ne glede na nastavitve sistema s katerega želite tiskati. Deluje lahko kot filter, prav kot tradicionalni lpr, zato lahko odjemalci kot so <tt/netscape/, <tt/xemacs/, itd., ki se izvajajo na oddaljenem stroju, tiskajo na vašem lokalnem stroju z malo truda. <p> Rlpr je dostopen na <url name="MetaLabu" url="ftp://metalab.unc.edu/pub/Linux/system/printing/">. <sect1>Na tiskalnik v Win95, WinNT, LanManager, ali Samba <p> Obstaja spis <em/Printing to Windows mini-HOWTO/, ki vsebuje več informacij kot jih najdete tukaj. <p> Mogoče je preusmeriti čakalno vrsto lpd skozi program <tt><htmlurl name="smbclient" url="http://www.picante.com/~gtaylor/pht/man/smbclient.1.html"></tt> (del zbirke samba) na tiskalniško storitev SMB, počivajočo na TCP/IP. Samba vključuje skript, imenovano <tt/smbprint/, ki to stori. Na kratko, postavite konfiguracijsko datoteko za določen tiskalnik, na katerega tiskate, v čakalni imenik (<em/spool directory/) in namestite skript <tt/smbprint/ kot <em/if/. <p> Vnos v <em>/etc/printcap</em> je takšen: <tscreen><verb> lp|remote-smbprinter:\ :lp=/dev/null:sh:\ :sd=/var/spool/lpd/lp:\ :if=/usr/local/sbin/smbprint: </verb></tscreen> <p> Za več podatkov, kako to sestaviti, morate prebrati dokumentacijo znotraj skripta <tt/smbprint/. <p> Uporabite lahko tudi <tt>smbclient</tt> in oddate datoteko neposredno v tiskalniško storitev SMB, ne da bi vključevali <tt/lpd/. Glejte stran v referenčnem priročniku (<tt/man smbclient/). <sect1>Na tiskalnik pod NetWare <p> Zbirka ncpfs vključuje pripomoček imenovan <tt/nprint/, ki poskrbi za enako funkcionalnost kot <tt/smbprint/, le za NetWare. Paket ncpfs lahko dobite na <htmlurl name="MetaLabu" url="ftp://metalab.unc.edu/pub/Linux/system/filesystems/ncpfs/">. Iz vnosa LSM različice 0.16: <quote> S paketom ncpfs lahko nameščate pogone vašega strežnika NetWare pod Linuxom. Lahko tudi tiskate v tiskalniške vrste NetWarea in uvrščate tiskalniške vrste NetWarea v tiskalniški sistem Linuxa. Potrebujete jedro 1.2.x ali 1.3.54 in večje. ncpfs <bf/ne/ deluje s katerimkoli jedrom pod 1.3.54. </quote> <p> Če želite pripraviti <tt/nprint/ do delovanja čez lpd, napišite majhen ukazni skript za izpis standardnega vhoda (<em/stdin/) na NetWareov tiskalnik, in jo namestite kot vhodni filter (<em/if/) za tiskalniško vrsto za lpd. Dobili boste nekaj takega: <tscreen><verb> sub2|remote-NWprinter:\ :lp=/dev/null:sh:\ :sd=/var/spool/lpd/sub2:\ :if=/var/spool/lpd/nprint-script: </verb></tscreen> Skript <tt>nprint-script</tt> lahko izgleda približno takole: <tscreen><verb> #! /bin/sh # Najprej preizkusite račun "guest" brez gesla! /usr/local/bin/nprint -S net -U name -P passwd -q printq-name - </verb></tscreen> <sect1>Na tiskalnik pod EtherTalk (Apple) <p> Paket netatalk vključuje nekaj takega kot <tt/nprint/ in <tt/smbclient/. Drugi so dokumentirali postopek za tiskanje na in iz omrežja Apple veliko bolje, kot ga bom sam kdajkoli; glejte spis <url name="Linux Netatalk-HOWTO" url="http://thehamptons.com/anders/netatalk/">. <sect1>Na HP ali drug tiskalnik omrežja ,ethernet` <p> HP-ji in nekateri drugi tiskalniki pridejo skupaj z omrežnim vmesnikom na katerega lahko neposredno tiskate s pomočjo lpd. Uporabljati morate navodila, priložena vašem tiskalniku ali njegovemu omrežnemu priključku, a splošnem lahko takšni tiskalniki delujejo z lpd in imajo eno ali več čakalnih vrst na katere lahko tiskate. HP, na primer, lahko deluje s podobno datoteko printcap: <tscreen><verb> lj-5|remote-hplj:\ :lp=/dev/null:sh:\ :sd=/var/spool/lpd/lj-5:\ :rm=ime.tiskalnika.si:rp=raw: </verb></tscreen> <p> Tiskalniki HP Laserjet z vmesniki Jet Direct v splošnem podpirajo dve vgrajeni vrsti za lpd -- surovo (,,<em/raw/``), ki sprejema PCL (in morda tudi PostScript) in tekstovno (,,<em/text/``), ki sprejema navaden ASCII (in samodejno odpravi efekt stopnic). Če imate tiskalnik z JetDirect Plus3 s tremi vhodnimi vrati, se vrste imenujejo ,,<em/raw1/``, ,,<em/text2/``, in tako naprej. <p> Bodite pozorni na to, da je podjetje ISS identificiralo večje število napadov, ki blokirajo vmesnike HP Jetdirect. Večina od teh se je zgodila od začetka jeseni 1998. <p> V velikem okolju, posebej v takem velikem okolju, kjer nekateri tiskalniki ne podpirajo PostScripta, je lahko uporabno ustvariti poseben <!-- ? dedicated --> tiskalniški strežnik, na katerega tiskajo vsi stroji in na katerem tečejo opravila GhostScripta. <p> Vaš Linux lahko torej deluje kot čakalni strežnik za tiskalnik, tako, da lahko uporabniki vašega omrežja končajo svoja tiskalna opravila hitro in nadaljujejo z delom, ne da bi morali čakati, da bo tiskalnik natisnil izpis drugega uporabnika. To je priporočeno tudi, če imate nepopravljive stare tiskalnike HP Jetdirect; zmanjšuje verjetnost blokiranja tiskalnika (angl. printers wedging). <p> Za kaj takega, napravite čakalno vrsto na vašem Linuxu, ki kaže na HP LJ z omrežno podporo (kot zgoraj). Zdaj nastavite vse odjemalce vaše mreže LAN, da bodo kazali na čakalno vrsto Linuxa (npr. lj-5 v zgornjem primeru). <p> Nekateri mrežni tiskalniki HP očitno ne upoštevajo nastavitev naslovne strani, ki jo pošljejo odjemalci; njihovo notranje narejeno stran lahko izključite tako, da se s <tt/telnet/ priključite na tiskalnik, dvakrat pritisnete <em/Enter/, napišete ,,<tt/banner: 0/`` in potem ,,<tt/quit/``. Obstajajo tudi druge nastavitve, ki jih lahko tako spremenite; napišite ,,<tt/?/`` za seznam. <sect2>Na starejše HP-je <p> Nekateri tiskalniki (in omrežne tiskalniške ,,črne škatle``) podpirajo le krasne majhne povezave TCP brez dodatnega protokola. V tej kategoriji so opazni zgodnji modeli kartic JetDirect (vključno z nekaterimi JetDirectEx). V bistvu morate za tiskanje na tak tiskalnik odpreti povezavo TCP na določenih vratih (tipično 9100, ali 9100, 9101 in 9102 na škatlah s tremi vrati) in noter natlačiti vaše tiskalniško opravilo. LPRng ima vgrajeno podporo za tlačenje tiskalniških opravil na naključna vrata TCP, a z BSD-jevim lpd to ni tako preprosto. To lahko storite, med drugim, v Perlu: <tscreen><verb> #!/usr/bin/perl # Hvala Danu McLaughlinu, ker je napisal izvorno različico # tega skripta (in Jimu W. Jonesu, ker je sedel poleg Dana, ko # mi je pisal za pomoč ;) $fileName = @ARGV[0]; open(IN,"$fileName") || die "Can't open file $fileName"; $dpi300 = "\x1B*t300R"; $dosCr = "\x1B&ero;k3G"; $ends = "\x0A"; $port = 9100 unless $port; $them = "bach.sr.hp.com" unless $them; $AF_INET = 2; $SOCK_STREAM = 1; $SIG{'INT'} = 'dokill'; $sockaddr = 'S n a4 x8'; chop($hostname = `hostname`); ($name,$aliases,$proto) = getprotobyname('tcp'); ($name,$aliases,$port) = getservbyname($port,'tcp') unless $port =~ /^\d+$/;; ($name,$aliases,$type,$len,$thisaddr) = gethostbyname($hostname); ($name,$aliases,$type,$len,$thataddr) = gethostbyname($them); $this = pack($sockaddr, $AF_INET, 0, $thisaddr); $that = pack($sockaddr, $AF_INET, $port, $thataddr); if (socket(S, $AF_INET, $SOCK_STREAM, $proto)) { # print "socket ok\n"; } else { die $!; } # Give the socket an address. if (bind(S, $this)) { # print "bind ok\n"; } else { die $!; } # Call up the server. if (connect(S,$that)) { # print "connect ok\n"; } else { die $!; } # Set socket to be command buffered. select(S); $| = 1; select(STDOUT); # print S "@PJL ECHO Hi $hostname! $ends"; # print S "@PJL OPMSG DISPLAY=\"Job $whoami\" $ends"; # print S $dpi300; # Avoid deadlock by forking. if($child = fork) { print S $dosCr; print S $TimesNewR; while (<IN>) { print S; } sleep 3; do dokill(); } else { while(<S>) { print; } } sub dokill { kill 9,$child if $child; } </verb></tscreen> <sect1>Poganjanje <em/if/ za oddaljene tiskalnike <p> Čudna posebnost lpd je, da se <em/if/ ne požene za oddaljene tiskalnike. Če ugotovite, da morate pognati <em/if/, lahko to storite tako, da naredite dvojno čakalno vrsto in prevrstite opravilo. Na primer, poglejte tole datoteko <tt/printcap/: <tscreen><verb> lj-5:\ :lp=/dev/null:sh:\ :sd=/var/spool/lpd/lj-5:\ :if=/usr/lib/lpd/filter-lj-5: lj-5-remote:lp=/dev/null:sh:rm=ime.tiskalnika.si:\ :rp=raw:sd=/var/spool/lpd/lj-5-raw: </verb></tscreen> V tej luči je skript <tt/filter-lj-5/ takšen: <tscreen><verb> #!/bin/sh gs <izbire> -q -dSAFER -sOutputFile=- - | \ lpr -Plj-5-remote -U$5 </verb></tscreen> <p> Izbira <em/-U/ za <tt/lpr/ deluje le, če je <tt/lpr/ pognan pritajeno (angl. <em/daemon/) in pravilno nastavi ime pošiljatelja opravila v še enkrat poslano vrsto. Verjetno morate uporabiti bolj robustno metodo za določitev uporabniškega imena, saj v nekaterih primerih to ni peti argument. Glejte stran referenčnega priročnika o <em><htmlurl name="printcap" url="http://www.picante.com/~gtaylor/pht/man/printcap.5.html"></em>. <sect1>Iz Windows <p> Tiskanje iz odjemalca z Windows (ali morda z OS/2) na strežnik z Linuxom je direktno podprto čez SMB z uporabo paketa SAMBA, ki podpira tudi deljenje datotek med datotečnim sistemom Linuxa in odjemalci z Windows. <p> Samba vključuje precej popolno dokumentacijo, obstaja tudi dober spisek pogosto zastavljenih vprašanj z odgovori, ki pokriva to temo. Na svoji škatli z Linuxom lahko nastavite magični filter in tiskate skozi njega PostScript, ali pa uporabljate posebne tiskalniku specifične gonilnike na vseh strojih z Windows in imate za njih čakalno vrsto brez vsakršnih filtrov. Zanašanje na gonilnike v Windows lahko v nekaterih primerih da boljši izpis, a je malce težavnejše administrativno opravilo, če imate veliko škatel z Windows. Zato najprej poskusite PostScript. <sect1>Iz računalnika Apple <p> <em/Netatalk/ podpira tiskanje z odjemalcev Apple čez EtherTalk. Glejte spletno stran <url name="Netatalk HOWTO Page" url="http://thehamptons.com/anders/netatalk/"> za več informacij. <sect1>Iz NetWare-a <p> Paket <em/ncpfs/ vključuje demonski strežnik <tt/pserver/, ki ga lahko uporabite za ustvarjanje opravila za tiskalniško čakalno vrsto NetWare-a. Kakor razumem, ta sistem potrebuje NetWare, grajen na Bindery, kot je 2.x, 3.x, ali 4.x z omogočenim povezovalnim dostopom. <!-- ? bindery access enabled. --> <p> Za več podatkov o ncpfs in programu <tt/pserver/ glejte <url url="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/" name="mesto za FTP ncpfs">. <sect>Tiskalniki le-za-Windows<label id="forwinonly"> <p> Kot sem že omenil, so nekateri tiskalniki inherentno nepodprti, saj ne razumejo običajnega tiskalniškega jezika in namesto tega uporabljajo procesor računalnika za izdelavo bitne slike, ki se nato s fiksno hitrostjo pretoči v tiskalnik. V nekaterih primerih ti tiskalniki razumejo nekaj običajnega, kot je PCL, a pogosto ne. V nekaterih (zares poceni) primerih, tiskalnik niti ne uporablja običajne vzporedne povezave, temveč je odvisen od proizvajalčevega gonilnika za emulacijo tega, kar bi moralo biti strojno podprto obnašanje (najpomembnejše - rokovanje). <p> V vsakem primeru obstaja nekaj možnih ovinkov, če ste že obtičali s takšno polomijo. <sect1>Preusmerjevalnik v Ghostscriptu na Windows <p> Obstaja tiskalniški gonilnik za Windows (imenovan mswinpr2), ki požene tiskalniško opravilo skozi Ghostscript, preden ga zares natisne. (Nekaj kot filter <em/if/ v <tt/lpd/-ju za Unix.) Obstaja tudi nov gonilnik za Ghostscript, ki tiska z uporabo klicev GDI v Windows. Če vzamemo to dvoje skupaj, naj bi(tm) to dovoljevalo stroju z Windows tiskanje PostScripta na tiskalnik le-za-Windows s proizvajalčevim gonilnikom. <p> Če vam uspe to usposobiti, lahko potem sledite zgornjim navodilom o tiskanju iz Linuxa preko omrežja na tiskalnik sistema Windows. S tem boste dovolili Unixom (in drugim Windows, Mac, itd.) tiskanje na vašem polomljenem tiskalniku. <p> Se pravi, tega nisem nikoli poskušal, ker nimam tiskalnika ,,winprinter``, zato se lahko vaše izkušnje razlikujejo. Vse programje lahko dobite na domači strani <htmlurl name="paketa Ghostscript" url="http://www.cs.wisc.edu/~ghost/">. <sect1>Program pbm2ppa <p> Nekateri tiskalniki HP uporabljajo tako imenovano arhitekturo ,,Printing Performance Architecture`` (kar je marketinški izraz za ,,prepoceni smo, da bi podpirali PCL``). Ta je po ovinkih podprta s prevajalnikom <tt/pbm2ppa/, ki ga je napisal Tim Norman. V bistvu uporabljate <tt/ghostscript/ za predelavo PostScripta v rastrsko sliko formata pbm, in potem uporabite <tt/pbm2ppa/ za predelavo v rastrski format ppa, ki ga razume vaš tiskalnik. Ta program lahko zdaj pride tudi kot gonilnik za ghostscript. <p> Programje za ppa lahko dobite na <url url="http://www.rpi.edu/~normat/technical/ppa/" name="domači strani ppa">; pbm2ppa podpira nekatere modele HP-jev 720, 820, in 1000; za več podatkov o tiskalniški podpori ppa preberite dokumentacijo, ki pride poleg paketa. <sect>Kako tiskati na faks <sect1>Uporaba faks-modema <p> Obstaja veliko faksirnih programov, ki vam omogočajo faksiranje in sprejemanje dokumentov. Eden najkompleksnejših je <em/HylaFax/ Sama Lefflerja, dostopen s <tt/ftp.sgi.com/. Podpira vse mogoče reči od več modemov do oddajanja (angl. broadcasting). <p> SuSE izdaja odjemalec <em/Java HylaFax/, ki baje deluje na katerikoli javanski platformi (vključno z Windows in Linuxom). Za večino platform obstajajo tudi nejavanski faksirni odjemalci: Linux lahko skoraj zagotovo zadovolji vaše omrežne faksirne potrebe. <p> Dostopna je tudi še boljša izbira za večino škatel z Linuxom; <tt><htmlurl name="efax" url="http://www.picante.com/~gtaylor/pht/man/efax.1.html"></tt>, preprost program za pošiljanje faksov. Program <tt/mgetty/ lahko pošilja fakse (in na nekaterih modemih celo obvlada glasovno pošto!). <sect1>Uporaba oddaljenih tiskalniških storitev <p> Obstaja poskusna storitev, ki vam ponuja, da pošljete elektronsko pošto z nečim, kar bi radi natisnili, potem pa to pride ven na določenem faksirnem stroju. Podprti so prijetni formati, kot postscript, torej, čeprav je splošen vtis pikčast, je to lahko zelo uporabna storitev. Za več informacij o tiskanju z oddaljenim tiskalniškim servisom, glejte njegovo spletno stran <url url="http://www.tpc.int/" name="Remote Printing WWW Site">. <sect>Kako narediti nekaj, kar je vredno tiskanja <p> Tukaj pridemo v pravo podganje leglo programja. Linux lahko načeloma poganja veliko tipov binarnih programov z različnimi stopnjami uspeha: Linux/x86, Linux/Alpha, Linux/Sparc, Linux/foo, iBCS, Win16/Win32s (z dosemu in, nekega dne, z Wine), Mac/68k (z emulatorjem Executor), in Java. Opisal bom le domorodno programje za Linux in splošni Unix. <p> Za sam Linux je izbira večinoma omejena na programje, v splošnem dostopno za Unix: <sect1>Opisni jeziki <p> Večina opisnih jezikov je bolj primerna za velike in ponavljajoče se projekte, kjer želite prepustiti računalniku kontrolo ureditve besedila in s tem poenotiti izgled reči. <p> <descrip> <tag><tt>nroff</tt></tag> To je bil eden prvih opisnih jezikov v Unixu. Strani z opisi ukazov v referenčnem priročniku (za <tt/man/) so najbolj pogost primer stvari, formatiranih z makro ukazi *roff; veliko ljudi prisega na njih, a <tt/nroff/ ima, vsaj zame, preveč zastarelo skladnjo, kot bi bilo potrebno, in verjetno predstavlja slabo izbiro za nova dela. Vseeno se izplača vedeti, da lahko s programom <tt/groff/ postavite stran iz formata za <tt/man/ direktno v postscript. Večina programov <tt/man/ naredi to z ukazom <tt>man -t foo | lpr</tt>. <tag/TeX/ TeX (izg. ,,teh``), in paket makro ukazov imenovan LaTeX (izg. ,,lateh``), sta dva izmed najbolj uporabljanih opisnih jezikov Unixa. Tehnični spisi so pogosto napisani v LaTeXu, saj zelo poenostavi vprašanja izgleda in je <em/še vedno/ eden redkih sistemov za stavljenje teksta, ki podpira matematične izraze hkrati popolnoma in dobro. Izhodni format TeXa je <tt/dvi/, in ga lahko pretvorite v PostScript ali PCL za tiskalnik Hewlett Packard s programoma <tt/dvips/ or <tt/dvilj/. Če želite namestiti TeX ali LaTeX, namestite celotno skupino paketov za teTeX; ta vsebuje vse. <p> Več o izvedbi TeXa za Linux boste izvedeli v prevodu spisa <htmlurl url="http://www.lugos.si/delo/slo/HOWTO-sl/TeTeX-HOWTO-sl.html" name="TeTeX HOWTO">. <tag/SGML/ Za Unix in Linux obstaja vsaj en prost razčlenjevalnik za SGML; sestavlja osnovo na Linuxu narejenega dokumentirnega sistema Linuxdoc-SGML. Podpira tudi druge DTD-je. <tag/HTML/ Nekdo je opozoril, da je lahko za preproste projekte dovolj pisati v HTML in jo natisniti z brkljalnikom Netscape. Ne strinjam se, a vaše izkušnje se lahko razlikujejo. </descrip> <sect1>Urejevalniki besedila WYSIWYG (kar vidiš, to dobiš) <p> Nič več ni pomanjkanja programja za urejanje besedila v načinu WYSIWYG. Dostopnih je veliko popolnih pisarniških zbirk, vključno z eno, ki je prosta za osebno uporabo (StarOffice). <descrip> <tag/StarOffice/ Nemško podjetje razširja po omrežju zbirko StarOffice, prosto za Linux. Ta popolna pisarniška zbirka ima vse lastnosti, ki jih lahko pričakujete, in ne morete najti boljše cene. Obstaja poseben spis mini-HOWTO, ki opisuje, kako jo dobite in namestite. Generira PostScript ali PCL, torej bi morala delovati s skoraj vsakim tiskalnikom, ki sicer deluje v Linuxu. Izgleda, da je ta zbirka klon paketa Office in torej precej napihnjena. <tag/WordPerfect/ Corel prosto razširja osnovno različico programa Word Perfect 8 za Linux, in namiguje, da bo razširjal tudi Corel Draw in Quattro Pro, ko boste prenesena. To je verjetno najboljša izbira, če imate stroj ARM; Corel izdeluje računalnike Netwinder Linux na procesorjih ARM in bo skoraj gotovo ponudil različice vsega za Linux na teh procesorjih. Kupite lahko tudi polno zmogljivo različico in podporo, skupaj ali posebej. Spletna stran <url url="http://www.channel1.com/users/rodsmith/wpfonts.html" name="Linux WordPerfect Fonts and Printers"> ponuja informacije o nastavitvi WordPerfecta za uporabo z Ghostscriptom ali z vgrajenimi tiskalniškimi gonilniki (izgleda, da so ti identični z dosovskimi gonilniki za WordPerfect, če gonilnik za vaš tiskalnik ni vključen v distribucijo WP8). <tag/Applix/ Applix je večplatformski (se pravi, deluje na različnih Unixih, Windows in drugih) pisarniški paket, ki ga prodaja podjetje Applix. Red Hat in SuSE sta ga prodajala sama, ko je bila to edina igra v mestu; zdaj se je prodaja preusmerila k Applix. <tag/LyX/ LyX je uporabniški vmesnik za LaTeX, ki izgleda zelo obetavno. Glejte spletno stran <url name="LyX Homepage" url="http://www.lyx.org/"> za več informacij. Obstaja tudi različica LyXa v stilu okenskega upravljalnika KDE, imenovana KLyX; prvi avtor LyXa in spodbujevalec uporabe namizja KDE sta ista oseba. <tag/Maxwell/ Maxwell je preprost urejevalnik besedil, zasnovan na formatu Microsoft RTF, ki se je začel kot komercialni izdelek, a se zdaj razširja pod GPL. <tag/The Andrew User Interface System/ AUIS vključuje <tt/ez/, urejevalnik tipa WYSIWYG z večino osnovnih lastnosti urejevalnika besedila, zmožnost delanja HTML in polno podporo za e-pošto po standardu MIME in novičarske skupine. Žal programa AUIS ne vzdržujejo več. <tag/Koffice/ Projekt za aktivno namizje KDE dela na popolni pisarniški zbirki. Mislim, da še ni zrela za javni nastop. Urejevalnik besedil bo najbrž naslednik LyXa. <tag/GNOME/ Projekt GNOME tudi deluje v smeri izdelave različnih pisarniških orodij z licenco GNU GPL, toda nobeno še ni dostopno. <p> Jeff Phillips <<tt/jeff@I_RATUS.org/> uporablja Calderin WordPerfect 7 za Linux (na distribuciji Slackware, od vseh mogočih), in pravi, da deluje dobro. Zdi se, da po pričakovanjih vključuje tudi vgrajeno tiskalniško podporo. Caldera mora imeti informacije nekje na <url url="http://www.caldera.com/">. Lahko kupite tudi novejšo različico WordPerfecta direktno od podjetja, ki mu je Corel zaupal prenos na Unix. </descrip> <p> Drugi proizvajalci mi lahko pošljejo sporočilo z njihovo ponudbo. <sect>Predogled reči za tiskanje na zaslonu <p> Skoraj vse, kar lahko natisnete, si lahko tudi ogledate na zaslonu. <sect1>PostScript <p> Ghostscript ima gonilnik za X11, ki ga najbolje upravlja program za predogled PostScripta <htmlurl name="gv" url="http://www.picante.com/~gtaylor/pht/man/gv.1x.html">. Zadnje različice teh programov bi morale biti sposobne tudi prikaza datotek PDF. Vedite, da je <tt/gv/ zamenjal prejšnji program ,,Ghostview``; uporabniški vmesnik je precej lepši in ponuja več možnosti, kot dobri stari vmesnik Athena v programu <tt/ghostview/. <sect1>TeXove dvi <p> Datoteke DVI (<em/DeVice Independent/ -- od naprave neodvisne datoteke) si lahko predogledate v X11 s programom <htmlurl name="xdvi" url="http://www.picante.com/~gtaylor/pht/man/xdvi.1.html">. Sodobne različice prikazovalnika <tt/xdvi/ kličejo <tt/ghostscript/ za prikaz vključenih slik v PostScriptu. <p> Obstaja tudi gonilnik za terminal VT100. Imenuje se <tt/dgvt/. <tt/Tmview/ deluje z Linuxom in svgalib, če je to vse, kar lahko počnete. <sect1>Adobe PDF <p> Za Linux obstaja Adobeov prikazovalnik Acrobat Reader; vzemite ga z njihove spletne strani <url url="http://www.adobe.com/">. <p> Lahko uporabite tudi <tt/xpdf/, ki je prosto dostopen in pride z izvorno kodo. Mislim, da tudi Ghostview do zdaj že podpira ogled datotek PDF z <tt/gs/ za X11. <sect>Zaporedni tiskalniki pod lpd <sect1>Postavitev v printcap <p> Strežniku lpd lahko podate pet atributov, ki jih nastavite v datoteki <em>/etc/printcap</em> in s tem nadzorujete vse nastavitve zaporednih vrat, na katerih je tiskalnik. Preberite stran referenčnega priročnika o <em><htmlurl name="printcap" url="http://www.picante.com/~gtaylor/pht/man/printcap.5.html"></em> in si poglejte pomen atributov <em/br#/, <em/fc#/, <em/xc#/, <em/fs#/ in <em/xs#/. Zadnji štiri od teh atributov so bitne slike, ki pomenijo nastavitve za uporabo vrat. Atribut <em/br#/ je preprosto hitrost prenosa v baudih, npr. ,<tt/br#9600/`. <p> Zelo lahko je preslikavati iz nastavitev <htmlurl name="stty" url="http://www.picante.com/~gtaylor/pht/man/stty.1.html"> v nastavitev zastavic v printcap. Če morate to storiti, zdaj poglejte stran o <tt/stty/ v referenčnem priročniku. <p> Uporabite <tt/stty/ za postavitev tiskalniških vrat, tako da lahko izpišete na njih datoteko (s <tt/cat/) in se ta pravilno natisne. Takole izgleda ,<em/stty -a/` za moja tiskalniška vrata: <tscreen><verb> dina:/usr/users/andy/work/lpd/lpd# stty -a < /dev/ttyS2 speed 9600 baud; rows 0; columns 0; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl ixon -ixoff -iuclc -ixany -imaxbel -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke </verb></tscreen> Edine razlike med tem in načinom, kako se vrata inicializirajo ob zagonu, so <tt/-clocal/, <tt/-crtscts/, in <tt/ixon/. Vaša vrata so prav lahko drugačna, odvisno od tega, kako vaš tiskalnik zganja kontrolo toka. <p> Pravzaprav uporabljate <tt/stty/ na nekam čuden način. Ker <tt/stty/ deluje na terminalu, priključenem na standardni vhod, ga uporabite za obvladovanje danih zaporednih vrat z uporabo znaka ,<tt/</`, kot zgoraj. <p> Ko ste enkrat zadeli vaše nastavitve v <tt/stty/ tako, da ukaz ,,<tt>cat file > /dev/ttyS2</tt>`` (v mojem primeru) pošlje datoteko na tiskalnik, poglejte datoteko <tt>/usr/src/linux/include/asm-i386/termbits.h</tt>. Ta vsebuje veliko definicij z <tt/#define/ in nekaj struktur <tt/struct/ (morda boste želeli natisniti to datoteko na tiskalniku (saj vam deluje, kajne?) in jo uporabili kot papir za čečkanje). Pomaknite se v razdelek, ki se začenja takole: <tscreen><verb> /* c_cflag bit meaning */ #define CBAUD 0000017 </verb></tscreen> Ta razdelek našteva pomen posameznih bitov v <em/fc#/ in <em/fs#/. Opazili boste, da se tamkajšnja imena (po hitrostih prenosa v baudih) ujemajo z eno od vrstic izhoda <tt/stty/. Vam nisem rekel, da bo to lahko? <p> Poglejte, katere nastavitve izhoda stty se začnejo z znakom ,<tt/-/`. Seštejte vse takšne številke (osmiške so). To predstavlja bite, ki bi jih radi ugasnili, zato je rezultat vaša zmožnost <em/fc#/. Seveda, spomnite se, da boste prižgali bite takoj, ko jih boste ugasnili, zato lahko le uporabite ,<tt/fc#0177777/` (jaz storim tako). <p> Zdaj napravite isto stvar za tiste nastavitve (naštete v tem razdelku), ki pred seboj nimajo znaka ,<tt/-/` v vašem izhodu stty. V mojem primeru so pomembni biti CS8 (0000060), HUPCL (0002000), in CREAD (0000200). Pazite tudi na zastavice za vašo baudno hitrost (moja je 0000015). Seštejte vse to, in v mojem primeru boste dobili 0002275. To gre v vašo zmožnost <em/fs#/ (,<tt/fs#02275/` v mojem primeru deluje čisto v redu). <p> Napravite isto s prižiganjem in ugašanjem za naslednji razdelek vključne datoteke, ,,<tt/c_lflag bits/``. V mojem primeru mi ni bilo treba nastavljati ničesar, torej uporabim le ,<tt/xc#0157777/` in ,<tt/xs#0/`. <sect1>Starejši zaporedni tiskalniki, ki izgubljajo znake <p> Jon Luckey opozarja, da nekateri starejši tiskalniki z zaporednimi vmesniki za dva stotina in majhnimi vmesnimi pomnilniki <em/zares/ mislijo ,,<em/stop/``, ko tako pravijo s kontrolo toka. Opazil je, da je onemogočenje FIFO na njegovih zaporednih vratih Linuxa s čipom UART 16550 s pripomočkom <tt><htmlurl name="setserial" url="http://www.picante.com/~gtaylor/pht/man/setserial.8.html"></tt> odpravilo težavo izgubljanja znakov (očitno za to le določite tip UART 8250). <sect>Zasluge <p> Podatek o <tt/smbprint/ je iz članka, ki ga je napisal Marcel Roelofs <<tt/marcel@paragon.nl/>. <p> Podatek o <tt/nprint/ pri uporabi tiskalnikov v NetWare je posredoval Michael Smith <<tt/mikes@bioch.ox.ac.uk/>. <p> Razdelek o zaporednih tiskalnikih pod lpd je spisal Andrew Tefft <<tt/teffta@engr.dnet.ge.com/>. <p> Čvek o gama-popravkih barv in podobnem za <tt/gs/ je poslal Andreas <<tt/quasi@hub-fue.franken.de/>. <p> Dva odstavka o 30-sekundnem čakanju zaporednega gonilnika je prispeval <<tt/cdj@netcom.com/>. <p> Robert Hart je poslal nekaj izvrstnih odstavkov o postavitvi tiskalniškega strežnika na omreženih HP-jih, ki sem jih uporabil dobesedno. <p> In posebna zahvala ducatom za ducati tistih med vami, ki ste v teh letih opozorili na tipkarske napake, slabe URL-je, in napake v spisu. <p> Slovenski prevod z dne 16. februarja 1999 je delo Romana Maurerja <<htmlurl url="mailto:roman.maurer@fmf.uni-lj.si" name="roman.maurer@fmf.uni-lj.si">>. Prosim, pošiljajte mi popravke in dopolnitve prevoda. </article>