Drukowanie w Linux-ie
 Autor: Grant Taylor, [email protected]
 v3.14, 23 Wrze�nia 1997
 WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll
 v1.3, 12 Lutego 1998

 Jest to dokument zawieraj�cy informacje na takie tematy jak: gen�
 erowanie wydruku, podgl�dni�cie go przed drukowaniem, wydrukowanie go
 oraz przefaxowanie czego� pod Linux-em (i innymi Unix-ami w
 og�lno�ci).  Dokument ten zosta� napisany w standardzie ISO-8859-2.
 Orygina� mo�na znale�� pod adresem ftp.icm.edu.pl w katalogu
 /pub/Linux/sunsite/docs/HOWTO.
 ______________________________________________________________________

 Table of Contents:

 1.      Wprowadzenie.

 1.1.    Historia

 1.2.    Prawa autorskie.

 2.      Jak drukowa�.

 3.      Urz�dzenia dotycz�ce drukarki w j�drze.

 3.1.    Urz�dzenie lp.

 3.2.    Urz�dzenie parport (j�dra >= 2.1.33)

 3.3.    Urz�dzenia szeregowe.

 4.      Obs�ugiwane drukarki.

 5.      Jakie oprogramowanie do kolejkowania ?

 6.      Jak to dzia�a - podstawy.

 7.      Jak poustawia� to wszystko - podstawy.

 7.1.    Tradycyjna konfiguracja lpd.

 7.2.    Prawa dost�pu do plik�w.

 8.      Zdobywanie oprogramowania do drukowania.

 8.1.    Magicfilter.

 8.2.    Filtr APS.

 8.3.    EZ-Magic.

 9.      Rozwi�zania sprzedawc�w.

 9.1.    RedHat.

 9.2.    Inne dystrybucje.

 10.     Ghostscript.

 10.1.   Wywo�ywanie Ghosscript-u.

 10.2.   Dostrajanie wynik�w w Ghostscripcie.

 10.2.1. Umiejscowienie i rozmiar wyniku.

 10.2.2. Gamma, rozmiar pikseli itp.

 11.     Jak drukowa� poprzez sie�.

 11.1.   Na ho�cie unix/lpd.

 11.1.1. Przy pomocy lpd.

 11.1.2. Przy pomocy rlpr.

 11.2.   Na Win95, WinNT, LanManager lub Sambie.

 11.3.   Na drukarce NetWare.

 11.4.   Na drukarce EtherTalk (Apple).

 11.5.   Na drukarce HP i innych ethernetowych drukarkach.

 11.5.1. Na starszych drukarkach HP.

 11.6.   Uruchamianie

 11.7.   Z Windows.

 11.8.   Z Apple.

 11.9.   Z Netware.

 12.     Jak drukowa� na fax-ie.

 12.1.   U�ywanie faxmodemu.

 12.2.   U�ywanie Zdalnego Serwisu Drukowania.

 13.     Jak wygenerowa� co� wartego drukowania.

 13.1.   J�zyki "Markup".

 13.2.   WYSIWYG.

 14.     Podgl�d przed wydrukiem.

 14.1.   PostScript.

 14.2.   TeX dvi.

 15.     Drukarki szeregowe pod lpd.

 15.1.   Ustawianie w printcap-ie.

 15.2.   Starsze drukarki szeregowe, kt�re gubi� znaki.

 16.     Wyrazy uznania.

 16.1.   Od t�umacza.
 ______________________________________________________________________

 11..  WWpprroowwaaddzzeenniiee..

 Printing HOWTO powinno zawiera� wszystko co powiniene� wiedzie�, aby
 ustawi� drukark� na swoim Linux-ie. Jest to troch� bardziej
 skomplikowane ni� w �wiecie poka�-i-kliknij Microsoft-u i Apple'a, ale
 za to bardziej elastyczne i z pewno�ci� prostsze je�li chodzi o
 administrowanie w du�ych sieciach lokalnych.

 Dokument ten jest tak u�o�ony, �e wi�kszo�� b�dzie musia�a przeczyta�
 tylko pierwsz� po�ow� czy co� ko�o tego. Wi�kszo�� nieciekawych
 informacji i takich, kt�re s� zale�ne od sytuacji znajduje si� w
 drugiej po�owie i �atwo je znale�� w spisie tre�ci, podczas gdy
 informacje zawarte w sekcjach 9 i 10 b�d� potrzebne wi�kszo�ci.

 Wi�kszo�� informacji z poprzedniej wersji zosta�o usuni�tych, poniewa�
 zdecydowa�em si� na napisanie tego dokumentu ca�kowicie od nowa.
 Zrobi�em tak, bo poprzednie wersje by�y takie wielkie - oko�o 60 stron
 A4, i narracja by�a do kitu. Je�li nie znalaz�e� tutaj odpowiedzi to
 powiniene� a) przeszuka� poprzedni� wersj� na stronie domowej    tego
 HOWTO <http://www.picante.com/~gtaylor/pht/>, b) podrzuci� mi
 informacj� co powinno tu by�, a nie ma tego.

 Strona domowa tego HOWTO <http://www.picante.com/~gtaylor/pht/> jest
 dobrym miejscem na szukanie nowszych wersji tego dokumentu; jest ona
 oczywi�cie tak�e dystrybuowana przez Projekt Dokumentacji Linux-a;
 archiwum zawieraj�ce dokumenty HOWTO mo�esz znale�� w Polsce pod
 adresem ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/docs/HOWTO.

 11..11..  HHiissttoorriiaa

 To jest trzecia generacja, a szczerze m�wi�c, to trzecia edycja
 zrobiona od nowa, dokumentu Printing-HOWTO. Historia PHT mo�e w uj�ciu
 chronologicznym wygl�da� tak:

 1. Napisa�em Printing-HOWTO w 1992 w odpowiedzi na wiele pyta�
    pojawiaj�cych si� na grupie comp.os.linux dotycz�cych drukowania
    napisa�em PHT i wys�a�em go tam. Dokument ten wyprzedzi� Projekt
    Dokumentacji Linux-a o kilka miesi�cy i by� pierwszym dokumentem
    a'la FAQ zwanym HOWTO. Edycja ta by�a w czystym ASCII.

 2. Po do��czeniu do PDL, PHT zosta�o wcielone do tego� projektu przez
    Briana McCauley _<_B_._A_._M_c_C_a_u_l_e_y_@_b_h_a_m_._a_c_._u_k_>; przez kolejne dwa lata
    wsp�tworzyli�my PHT. Po jakim� czasie do��czyli�my prac� Karla
    Auera_<_K_a_r_l_._A_u_e_r_@_a_n_u_._e_d_u_._a_u_>. Ta generacja PHT by�a w TeXinfo oraz
    tak�e w PS, HTML, ASCII i Info.

 3. Po tym jak pozwolili�my PHT �eby troch� "podgni�o" przez rok i po
    nieskutecznych poszukiwaniach jakiej� osoby, kt�ra zaj�aby si�
    PHT, mia�o miejsce powstanie tej wersji. Ta generacja PHT jest w
    Linuxdoc-SGML.

 11..22..  PPrraawwaa aauuttoorrsskkiiee..

 Prawa autorskie nale�� do Granta Taylora (c) 1997. Prosz� kopiowa� i
 dystrybuowa� ten dokument do woli, ale nie modyfikoewa� ani nie
 zapomnie� mojego nazwiska.

 22..  JJaakk ddrruukkoowwaa��..

 Je�li masz ju� zainstalowany program lpd i jest on ustawiony dla
 twojej drukarki przez kogokolwiek, to wszystko czego potrzebujesz, to
 nauczy� si� pos�ugiwa� poleceniem _l_p_r. Dokument Printing-Usage-HOWTO
 <http://www.jtz.org.pl/~bart/Tlumaczenie/Html/Printing-Usage-
 HOWTO.pl.html> zawiera opis tego polecenia i kilku innych u�ywanych do
 manipulowania kolejk� wydruku.
 Jednak je�li masz nowy system albo now� drukark�, to b�dziesz musia�
 ustawi� serwis drukowania w ten lub inny spos�b zanim b�dziesz m�g�
 drukowa�. Czytaj dalej!

 33..  UUrrzz��ddzzeenniiaa ddoottyycczz��ccee ddrruukkaarrkkii ww jj��ddrrzzee..

 33..11..  UUrrzz��ddzzeenniiee llpp..

 J�dro Linux-a (<=2.1.32), zak�adaj�c, �e wkompilowa�e� lub za�adowa�e�
 urz�dzenie _l_p (polecenie cat /proc/devices powinno pokaza� urz�dzenie
 _l_p), dostarcza jedno lub wi�cej urz�dze� _/_d_e_v_/_l_p_0, _/_d_e_v_/_l_p_1 i
 _/_d_e_v_/_l_p_2. NNiiee ss�� one kojarzone dynamicznie, ale s� one na sta�e
 przypisane konkretnym adresom I/O. Oznacza to, �e twoja pierwsza
 drukarka mo�e by� na _l_p_0, albo _l_p_1 w zale�no�ci od sprz�tu. Spr�buj
 obu. ;)

 Kilku u�ytkownik�w zg�osi�o, �e ich dwukierunkowe porty lp nie zostaj�
 wykryte je�li u�ywaj� starszego, jednokierunkowego kabla.  Sprawd� czy
 masz przyzwoity kabel.

 Na danym porcie nie mo�na mie� na raz sterownik�w _p_l_i_p oraz _l_p. Ale
 mo�na za�adowa� jeden albo drugi sterownik w ka�dej chwili; r�cznie
 albo przez _k_e_r_n_e_l_d przy j�drze w wersji 2.x.x (lub p�niejsze 1.3.x).
 Je�li dok�adnie ustawisz przerwania itp., to mo�esz przypuszczalnie
 mie� _p_l_i_p na jednym porcie, a _l_p na drugim. Jedna osoba zrobi�a tak,
 przez edycj� sterownik�w; z niecierpliwo�ci� oczekuj� osoby, kt�ra
 zrobi�aby to tylko przy u�yciu argument�w z linii polece�.

 Jest takie narz�dzie zwane _t_u_n_e_l_p
 _<_h_t_t_p_:_/_/_w_w_w_._p_i_c_a_n_t_e_._c_o_m_/_~_g_t_a_y_l_o_r_/_p_h_t_/_m_a_n_/_t_u_n_e_l_p_._h_t_m_l>, przy pomocy
 kt�rego "root" mo�e ustawia� przerwania i inne opcje na urz�dzeniu _l_p.

 Je�li urz�dzenie _l_p jest wbudowane w j�dro w wersji 1.3.x lub wy�szej,
 to mo�esz przekaza� parametr lp= do j�dra, w kt�rym mo�esz ustawi�
 przerwanie, adres itp.

 Je�li sterownik lp jest wbudowany w j�dro, to mo�esz u�y� parametru
 LILO/LOADLIN, aby ustawi� adres portu i przerwanie, kt�rych sterownik
 b�dzie u�ywa�.

 Sk�adnia:        lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]

 Na przyk�ad:     lp=0x378,0   lub   lp=0x278,5,0x378,7 **

 Zauwa�, �e je�li u�ywasz tego parametru, to musisz poda� *wszystkie*
 porty, kt�rych b�dziesz u�ywa� - nie ma warto�ci domy�lnych. Mo�esz
 wy��czy� wbudowany sterownik parametrem lp=0.

 Je�li �adujesz sterownik drukarki jako modu� w wersji j�dra 2.x.x lub
 p�nej 1.3.x, to mo�esz poda� przerwanie i port jako parametr w linii
 polece� przy _i_n_s_m_o_d (albo w pliku /etc/conf.modules, �eby dzia�a�o
 tak�e dla kerneld). Parametry to: _i_o_=_p_o_r_t_0_,_p_o_r_t_1_,_p_o_r_t_2 i
 _i_r_q_=_i_r_q_0_,_i_r_q_1_,_i_r_q_2. Wi�cej informacji znajdziesz w podr�czniku
 systemowym _m_a_n na stronie dotycz�cej _i_n_s_m_o_d.

 **Dla tych, kt�rzy (jak ja) nigdy nie mog� znale�� standardowego portu
 kiedy go potrzeba, to s� one takie jak w podanym wy�ej drugim
 przyk�adzie. Drugi port (_l_p_0) jest pod adresem 0x3bc. Nie mam poj�cia
 jakiego przerwania zwykle u�ywa.
 Kod �r�d�owy linux-owego sterownika portu r�wnoleg�ego jest w pliku
 /usr/src/linux/drivers/char/lp.c

 33..22..  UUrrzz��ddzzeenniiee ppaarrppoorrtt ((jj��ddrraa >>== 22..11..3333))

 Pocz�wszy od j�dra w wersji 2.1.33 (dost�pne tak�e jako �ata dla j�dra
 2.0.30), urz�dzenie lp jest po prostu klientem nowego urz�dzenia
 parport. Dodanie urz�dzenia parport naprawia pewn� ilo�� b��d�w, kt�re
 dr�czy�y poprzedni sterownik urz�dzenia lp - mo�e ono wp�dzieli� port
 z innym urz�dzeniem, przypisuje dynamicznie dost�pne porty r�wnoleg�e
 numerom urz�dze� zamiast wymusza� z g�ry narzucon� komunikacj�
 pomi�dzy adresami I/O a numerami port�w i tak dalej.

 Wi�cej szczeg��w na temat parport podam kiedy sam znajd� si� w
 sytuacji kiedy b�d� tego u�ywa�. A w mi�dzyczasie mo�esz przeczyta�
 plik Documentation/parport.txt w drzewie ze �r�d�ami j�dra albo
 zajrzyj na stron� parport
 <http://www.cyberelk.demon.co.uk/parport.html>.

 33..33..  UUrrzz��ddzzeenniiaa sszzeerreeggoowwee..

 Urz�dzenia szeregowe pod Linux-em zwykle nazywaj� si� /dev/ttyS1 lub
 podobnie. Narz�dzie _s_t_t_y
 _<_h_t_t_p_:_/_/_w_w_w_._p_i_c_a_n_t_e_._c_o_m_/_~_g_t_a_y_l_o_r_/_p_h_t_/_m_a_n_/_s_t_t_y_._h_t_m_l> pozwala na
 interaktywne przegl�danie lub okre�lanie ustawie� dla portu
 szeregowego; _s_e_t_s_e_r_i_a_l
 _<_h_t_t_p_:_/_/_w_w_w_._p_i_c_a_n_t_e_._c_o_m_/_~_g_t_a_y_l_o_r_/_p_h_t_/_m_a_n_/_s_e_t_s_e_r_i_a_l_._h_t_m_l> pozwoli ci na
 kontrolowanie kilku rozszerzonych w�a�ciwo�ci oraz na skonfigurowanie
 IRQ i adres�w I/O dla niestandardowych port�w. Wi�cej na temat port�w
 szeregowych znajdziesz w Serial-HOWTO
 <http://www.jtz.org.pl/Html/Serial-HOWTO.pl.html> dost�pnym tak�e w
 j�zyku polskim.

 Je�li u�ywasz wolnej drukarki szeregowej z kontrol� przep�ywu (flow
 control), mo�e si� okaza�, �e niekt�re z twoich wydruk�w s� obcinane.
 Mo�e by� to spowodowane zachowaniem portu szeregowego, kt�ry wyrzuca
 wszystkie znaki ze swojego bufora po 30 sekundach od momentu
 zamkni�cia portu. W buforze mo�e si� znajdowa� do 4096 znak�w a je�li
 twoja drukarka u�ywa kontroli przep�ywu i jest wystarczaj�co wolna,
 tak �e nie mo�e przyj�� wszystkich 4096 znak�w z portu w ci�gu 30
 sekund, po tym jak oprogramowanie drukuj�ce zakmn�o port, to ko�cowa
 zawarto�� bufora zostanie utracona. Je�li w wyniku polecenia _c_a_t _p_l_i_k
 _> _/_d_e_v_/_t_t_y_S_2 pojawia si� ca�y wydruk dla kr�tkich plik�w, a d�u�sze s�
 obcinane, to to mo�e by� tw�j problem.

 Okres 30 sekund mo�e zosta� zmieniony poprzez opcj� "closing_wait"
 programu setserial (wersja 2.12 i p�niejsze). Porty szeregowe maszyny
 s� z regu�y inicjowane poprzez odwo�anie do setserial w pliku
 startowym rc.serial. Odwo�anie do portu szeregowego drukarki mo�e by�
 zmodyfikowane, tak aby ustawi� closing_wait w tym samym czasie kiedy
 ustawia inne parametry tego portu.

 44..  OObbss��uuggiiwwaannee ddrruukkaarrkkii..

 J�dro Linux-a obs�uguje raczej ka�d� drukark�, kt�r� mo�esz pod��czy�
 do szeregowego albo r�wnoleg�ego portu, ale s� rzeczy na kt�re trzeba
 spojrze� oraz drukarki kt�rych nie b�dziesz w stanie u�y� nawet
 pomimo, �e (elektrycznie m�wi�c) mog� one komunikowa� si� z Linux-em.
 W grupie tych niekompatybilnych drukarek przewa�aj� te, kt�re polegaj�
 na "Windows Printing System". (Cz�sto s� one oznaczone "for Windows".)
 Te drukarki _n_i_e wsp�pracuj� z Linux-em. Nie maj� �adnych
 inteligentnych cz�ci i polegaj� na procesorze komputera, kt�ry musi
 zrobi� wi�kszo�� tego co kiedy� robi�y procesory w drukarce. Niestety
 te zadania mog� by� wykonane tylko przez sterowniki dostarczone przez
 producenta, kt�re dzia�aj� tylko pod Windows. Wi�c nie kupuj takiej
 drukarki do Linux-a.

 Je�li chodzi o drukarki, kt�re _d_z_i_a_�_a_j_� z Linux-em, to najlepszym
 wyborem jest kupienie drukarki z interpreterem PostScript-u. Prawie
 ka�de oprogramowanie pod Unix-a, kt�re tworzy jaki� drukowalny wynik
 tworzy go w PostScripcie, wi�c oczywistym jest, �e najlepiej kupi�
 drukark� obs�uguj�c� PostScript. Niestety, ale obs�uga tego j�zyka
 poza drukarkami laserowymi jest bardzo rzadko spotykana.

 Je�li nie uda ci si� wydoby� (raczej wi�kszego) bud�etu potrzebnego na
 kupno drukarki PostScript-owej, mo�esz u�y� jakiejkolwiek drukarki
 obs�ugiwanej przez Ghostcript, darmowy interpreter PostScript-u
 u�ywanego do druku PostScript-owego. Na domowej stronie
 Ghostscript-u <http://www.cs.wisc.edu/~ghost/> znajdziesz obs�ugiwane
 drukarki i informacje na temat nowych i ekpserymentalnych sterownik�w.
 Pom� prosz� w ulepszaniu Ghostscript-u poprzez zg�aszanie sukces�w
 b�d� pora�ek jak o to prosz�.

 55..  JJaakkiiee oopprrooggrraammoowwaanniiee ddoo kkoolleejjkkoowwaanniiaa ??

 Do niedawna wyb�r dla u�ytkownik�w Linux-a by� prosty - wszyscy
 u�ywali tego samego, starego lpd wzi�tego bezpo�rdnio z kodu Net-2
 BSD. Nawet dzisiaj wi�kszo�� sprzedawc�w dostarcza ten w�a�nie
 program. Ale to si� zaczyna zmienia�. Systemy SVR4 w��czaj�c w to
 Solaris Sun-a dostarczaj� ca�kiem inny pakiet do kolejkowania oparty
 na _l_p_s_c_h_e_d. Pojawiaj� si� tak�e oznaki, i� niekt�rzy sprzedawcy Linux-
 a przejd� na dostarczanie LPRng, o wiele mniej zabytkowej
 implementacji, kt�ra jest dost�pna za darmo. LPRng jest o wiele
 prostszy w administrowaniu dla wi�kszych instalacji i ma o wiele
 przyja�niejsz� baz� danych ani�eli lpd.

 Na dzie� dzisiejszym nawet w �wietle nowych opcji, lpd jest
 przypuszczalnie dobry dla wi�kszo�ci u�ytkownik�w Linux-a. Raz
 ustawiony dzia�a dobrze i jest �atwy w zrozumieniu oraz szeroko
 udokumentowany w ksi��kach o Unix-ie.

 Je�li chcesz wi�cej informacji na temat LPRng to zobacz LPRng - An
 Enhanced Printer Spooler
 <http://ltpwww.gsfc.nasa.gov/ltpcf/about/unix/Depotdoc/LPRng/>.
 Przysz�e wersje tego dokumentu b�d� zawiera�y informacje o zwyk�ym lpd
 oraz o LPRng.

 66..  JJaakk ttoo ddzziiaa��aa -- ppooddssttaawwyy..

 �eby drukowanie dzia�a�o, musisz zrozumie� jak dzia�a system lpd.

 LPD to skr�t od Line Printer Daemon i odnosi si� w r�nych kontekstach
 do demona i do ca�ej kolekcji program�w, kt�re drukuj�. S� to:

    llppdd
       Demon kolejkowania. Jeden z nich jest uruchomiony, aby
       kontrolowa� wszystko na maszynie, I jeden jest uruchamiany dla
       drukarki podczas drukowania.

    llpprr
       Polecenie dla u�ytkownik�w do kolejkowania wydruk�w. Lpr
       kontaktuje si� z lpd i umieszcza nowe zadanie w katalogu
       kolejkowania.

    llppqq
       Wy�wietla wydruki umieszczone w kolejce.

    llppcc
       Polecenie do kontrolowania systemu lpd. Poleceniem tym mo�esz
       wystartowa�, zatrzyma�, zmieni� porz�dek w kolejce drukowania.

    llpprrmm
       Usuwa wydruk z kolejki.

 To jak to wszystko dzia�a ? No... kiedy system startuje, uruchamiany
 jest lpd. Czyta on plik /etc/printcap, aby si� dowiedzie� dla jakich
 drukarek b�dzie obs�ugiwa� kolejki. Za ka�dym razem kiedy kto�
 uruchomi _l_p_r, lpr kontaktuje si� z lpd poprzez gniazdko /dev/printer i
 podaje mu wydruk oraz kilka informacji o tym kto drukuje i jak ma to
 by� wydrukowane. Potem lpd drukuje otrzymany plik na odpowiedniej
 drukarce.

 System lp powsta� w czasach kiedy wi�kszo�� drukarek by�a drukarkami
 liniowymi - tzn. ludzie drukowali w wi�kszo��i teksty w ASCII. Jak si�
 okaza�o, nie trzeba du�o pracy, aby lpd dzia�a� dobrze dla
 dzisiejszych wydruk�w takich jak PostScript, czy text, czy dvi, czy
 ...

 77..  JJaakk ppoouussttaawwiiaa�� ttoo wwsszzyyssttkkoo -- ppooddssttaawwyy..

 77..11..  TTrraaddyyccyyjjnnaa kkoonnffiigguurraaccjjaa llppdd..

 Minimalne ustawienia objawiaj� si� tym, �e system mo�e kolejkowa�
 pliki i je drukowa�. Nie b�dzie zwraca� uwagi na to, czy twoja
 drukarka je zrozumie czy nie i przypuszczalnie nie pozwoli ci na
 zrobienie atrakcyjnego wydruku. Jednak jest to pierwszy krok do
 zrozumienia, wi�c czytaj dalej !

 Og�lnie m�wi�c, �eby doda� kolejk� dla drukarki musisz doda� pozycj�
 do /etc/printcap i utworzy� katalog do kolejkowania w /var/spool/lpd/.

 Pojedyncza pozycja w /etc/printcap wygl�da tak:

 # LOCAL djet500
 lp|dj|deskjet:\
         :sd=/var/spool/lpd/dj:\
         :mx#0:\
         :lp=/dev/lp0:\
         :sh:

 Definiuje ona drukark� o nazwach _l_p, _d_j i _d_e_s_k_j_e_t, z katalogiem
 kolejkowania /var/spool/lpd/dj/, bez limitu na ka�dy wydruk, kt�ra
 drukuje na urz�dzeniu /dev/lp0 i kt�ra nie ma strony tytu�owej (z
 danymi o osobie, kt�ra drukowa�a itp.)  na pocz�tku wydruku.

 Teraz poczytaj stron� w podr�czniku systemowym na temat _p_r_i_n_t_c_a_p.

 Powy�szy przyk�ad wygl�da bardzo prosto, ale jest tam jeden kruczek -
 drukarka b�dzie tak d�ugo dobrze drukowa�a, dop�ki b�d� wysy�a� pliki,
 kt�re ona rozumie. Na przyk�ad wys�anie na drukark� zwyk�ego unix-
 owego pliku tekstowego spowoduje, �e na papierze pojawi si� co�
 takiego:

 To jest pierwsza linia.
                        To jest druga linia.
                                            To jest trzecia linia.

 Wys�anie na t� drukark� pliku w PostScripcie spowodowa�oby
 wydrukowanie pi�knej listy polece� PostScript z dodatkowym efektem
 schodk�w :) - be� �adnego po�ytecznego efektu.

 Wynika z tego jasno, �e czego� tu jeszcze brakuje - i to jest w�a�nie
 celem filtrowania. Ci, kt�rzy czytali stron� podr�cznika systemowego o
 pliku "printcap" mogli zuwa�y� atrybuty kolejki - _i_f i _o_f. _i_f - czyli
 input filter - to w�a�nie to czego potrzebujemy.

 Je�li napiszemy kr�tki skrypt o nazwie "filter", kt�ry doda przed
 ko�cem linii znak CR (cariage return - powr�t karetki), to efekt
 schod�w mo�e by� wyeliminowany. Tak wi�c musimy doda� do naszej
 pozycji w /etc/printcap jeszcze jedn� lini� informuj�c� o istniej�cym
 filtrze:

 lp|dj|deskjet:\
         :sd=/var/spool/lpd/dj:\
         :mx#0:\
         :lp=/dev/lp0:\
         :if=/var/spool/lpd/dj/filter:\
         :sh:

 Przyk�adem prostego skryptu mo�e by�:

 #!perl
 # Powy�sza linia tak na prawd� powinna zawiera� pe�n� �cie�k� do perl-a
 # Skrypt ten musi by� wykonywalny: chmod 755 filter
 while(<STDIN>){chop $_; print "$_\r\n";};
 # Mo�esz te� zako�czy� znacznikiem "form feed": print "\f";

 Je�li zrobimy powy�sze, to otrzymamy drukark�, na kt�r� b�dziemy mogli
 wysy�a� pliki tekstowe z Unix-a i otrzymamy sensowny wydruk. (Tak, s�
 4 miliony lepszych sposob�w na napisanie tego skryptu, ale tylko kilka
 jest tak bardzo ilustracyjnych. Ty masz to napisa� bardziej wydajnie.)

 Jedynym problemem jest to, �e drukowanie plik�w tekstowych nie jest
 takie znowu fajne - by�oby o wiele lepiej, je�li moglibysmy drukowa�
 pliki PostScriptowe czy graficzne. No... tak, by�oby i jest to �atwe
 do zrobienia. Metoda jest rozszerzeniem tego co zrobili�my, �eby si�
 pozby� schodk�w. Je�li napiszesz program, kt�ry mo�e przyjmowa� r�ne
 formaty i t�umaczy� je na j�zyk zrozumia�y dla drukarki, to masz
 naprawd� dobry filtr.

 Taki filtr nazywany jest filtrem magicznym. Nie m�cz si� nad pisaniem
 w�asnego - o ile nie drukujesz jakichs cud�w - na sieci jest ju� pe�no
 filtr�w, kt�re mo�esz �mia�o u�ywa�.

 77..22..  PPrraawwaa ddoosstt��ppuu ddoo pplliikk��ww..

 Poniewa� otrzyma�em wiele pr�b, za��czam list� plik�w wraz z prawami
 dost�pu jakie maj� one w moim systemie. Jest wiele lepszych sposob�w
 na zrobienie tego - idealnym sposobem jest u�ywanie program�w tylko z
 atrybutami SGID, a nie robienie wszystkiego SUID dla "root-a", ale m�j
 system tak ju� mia� i dla mnie to dzia�a.

 -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/

 W chwili obecnej lpd musi by� uruchamiany z prawami "root-a", poniewa�
 u�ywa on numer�w port�w zastrze�onych dla systemu (poni�ej 1024). Po
 tym jak ju� si� podczepi pod ten port powinien si� zmieni� na lp.lp,
 ale raczej tego nie robi...

 88..  ZZddoobbyywwaanniiee oopprrooggrraammoowwaanniiaa ddoo ddrruukkoowwaanniiaa..

 Wiele napisanych pakiet�w filtruj�cych (i innych program�w zwi�zanych
 z drukowaniem) dost�pnych jest na SunSite    Polska
 <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/printing/>.  Mo�na tam
 znale�� takie programy jak: psutils, a2ps, mpage, dvitodvi, flpr.

 88..11..  MMaaggiiccffiilltteerr..

 "Magic filter" jest jednym z najlepszych pakiet�w filtruj�cych;
 zaprojektowany jest do instalacji w 10 minut. Powiedziano mi te�, �e
 zawiera specjaln� obs�ug� LPRng.

 Title:          magicfilter
 Version:        1.1b
 Entered-date:   04APR95
 Description:    A customizable, extensible automatic printer filter.
                 Lets you automatically detect and print just about any
                 data type you can find a conversion utility for.  This
                 filter is written in C and is controlled completely
                 from an external printer configuration file.
                 This version adds automagic creation of configuration
                 files based on the installed software on your system,
                 courtesy of GNU Autoconf.
                 This version is a bug fix from 1.1/1.1a; filters for
                 non-ASCII capable PostScript printers have been added.
 Author:         H. Peter Anvin <[email protected]>
 Primary-site:   sunsite.unc.edu
                 53000 /pub/Linux/system/printing/magicfilter-1.1b.tar.gz
 Copying-policy: GPL

 88..22..  FFiillttrr AAPPSS..

 Innym z wielu magicznych filtr�w jest APS zrobiony przez Andreasa
 Klemma. Linux Software Map wygl�da tak:

 Begin3
 Title:          apsfilter
 Version:        4.9.1
 Entered-date:   Montag, 10. Juli 1995, 21:22:35 Uhr MET DST
 Description:    magicfilter for lpd with auto filetype detection
 Keywords:       lpd magicfilter aps apsfilter
 Original-site:  ftp-i2.informatik.rwth-aachen.de
                 /pub/Linux/pak/APSfilter/aps-491.tgz
                 211KB aps-491.tgz
 Platforms:      C-Compiler, gs Postscript emulator, pbmutils
 Copying-policy: GPL
 End

 Filtr APS instaluje si� jako filtr _i_f dla kolejki drukowania, i
 t�umaczy z wielu popularnych typ�w plik�w na polecenia twojej
 drukarki.. Rozumie np. tekst, PostScript, dvi, gif i inne.

 88..33..  EEZZ--MMaaggiicc..

 EZ-Magic to kolejny pakiet filtruj�cy, napisany w bash-u, dostepny na
 sunsite.

 Title:          ez-magic printer filter
 Version:        1.0.5
 Entered-date:   January 26, 1997
 Description:    ez-magic is a printer filter that supports 8 common file
                 formats (txt,ps,gif,bmp,pcx,png,jpg,tif) for printing.
                 It can print over a network (SMB), or to a local printer.
                 Reads from a file, STDIN, or lpd. Simple to use and
                 configure. Just one script file, no huge manuals and
                 multibillion drivers. The only catch is that you need a
                 few common helper programs like netpbm and ghostscript.
                 Written in bash. Easy to add formats and code. Still more
                 bugs than I have appendages, but less than the number of
                 grams of fat in a hot dog. Pre-configured for HP DeskJet
                 870Cse over network. Comparable to apsfilter and others.
 Keywords:       magic filter, print, graphics, samba, network, smb,
                 ghostscript, postscript, gif, jpg, simple
 Author:         [email protected] (Toby Reed)
 Maintained-by:  [email protected] (Toby Reed)
 Primary-site:   http://www.eskimo.com/~toby/ez-magic-1.0.5.tar.gz
                          38 kb ez-magic-1.0.5.tar.gz
 Alternate-site: sunsite.unc.edu /pub/Linux/system/printing
                          38 kb ez-magic-1.0.5.tar.gz
 Copying-policy: Copyrighted, full manipulation rights, with one or two
                 restrictions.

 99..  RRoozzwwii��zzaanniiaa sspprrzzeeddaawwcc��ww..

 [ Sekcja ta, jest z definicji niekompletna. Przysy�aj szczeg�y twojej
 ulubionej dystrybucji. ]

 99..11..  RReeddHHaatt..

 W RedHacie znajduje si� graficzne narz�dzie do admiistracji, przy
 pomocy kt�rego mo�na dodawa� drukarki odleg�e oraz lokalne. Pozwala
 ono na wyb�r drukarki z obs�ug� "ghostscript" oraz pliku urz�dzenia,
 do kt�rego kierowany jest wydruk; potem dana drukarka instalowana jest
 w /etc/printcap. Nast�pnie tworzony jest kr�tki filtr magiczny
 PostScript-ASCII na podstawie _g_s i _n_e_n_s_c_r_i_p_t.  Rozwi�zanie to dzia�a
 ca�kiem dobrze i jest �atwe do ustawienia dla popularnych przypadk�w.

 99..22..  IInnnnee ddyyssttrryybbuuccjjee..

 Prosz� o informacje jakie s� rozwi�zania w innych dystrybucjach.

 1100..  GGhhoossttssccrriipptt..

 Ghostscript <http://www.cs.wisc.edu/~ghost/> jest najbardziej
 znacz�cym programem do drukowania dla Linux-a.  Wi�kszo��
 oprogramowania do drukowania pod Unix-a generuje PostScript, kt�ry
 jest opcj� dla drukarki wart� ok. $100. Jednak ghostscript jest za
 darmo i wygeneruje j�zyk dla twojej drukarki z PostScriptu. Je�li jest
 on podczepiony pod filtr wej�ciowy dla lpd, to daje wirtualn� drukark�
 PostScriptow� i bardzo u�atwia �ycie.

 Ghostscript jest dost�pny w dw�ch postaciach. Komercyjna wersja
 Ghostscript-u pod nazw� Alladin Ghostscript mo�e by� u�ywana dla cel�w
 osobistych, ale nie mo�e by� rozprowadzana w komercyjnych
 dystrybucjach Linux-a. Jest on z regu�y o jaki� rok do przodu wzgl�dem
 darmowej wersji; w tym momencie na przyk�ad, obs�uguje on Adobe
 Acrobat's Portable Document Format, podczas gdy starsze wersje tego
 nie maj�.

 Wersja darmowa to GNU Ghostscript i jest starsz� wersj� Aladdina
 uprzejmie u�yczon� dla GNU. (Cze�� i chwa�a dla Aladdina za to; wi�cej
 sprzedawc�w oprogramowania powinna wspomaga� darmowe oprogramowanie w
 ten spos�b)

 Cokolwiek robisz w _g_s, upewnij si�, �e uruchomi�e� go z opcj�
 wy��czaj�c� dost�p do plik�w (-dSAFER). PostScript jest j�zykiem w
 pe�ni funkcjonalnym i z�y program w PostScripcie m�g�by ci� przyprawi�
 o b�l g�owy.

 M�wi�c o PDF-ie (Adobe's Portable Document Format), w�a�ciwie jest to
 troch� bardziej zorganizowany PostScript w skompresowanym pliku.
 Ghostscript umie obs�u�y� PDF tak samo jak PostScript, wi�c mo�esz by�
 pierwszym w swoim otoczeniu z drukark� umiej�c� wydrukowa� PDF.

 1100..11..  WWyywwoo��yywwaanniiee GGhhoossssccrriipptt--uu..

 Zwykle ghostscript jest uruchamiany przez filtr, kt�ry za�o�y�e�, ale
 w celach �ledzenia b��d� dobrze jest go uruchamia� r�cznie.

 gs -help poka�e kr�tk� list� opcji i dot�pnych sterownik�w (lista ta
 pokazuje tylko sterowniki wkompilowane, a nie wszystkie dost�pne
 sterowniki).

 Mo�esz uruchomi� gs w celach testowych np. tak:

 gs <opcje> -q -dSAFER -sOutputFile=/dev/lp1 test.ps

 1100..22..  DDoossttrraajjaanniiee wwyynniikk��ww ww GGhhoossttssccrriippcciiee..

 Jest wiele rzeczy, kt�re mo�na zrobi� je�li wynik powsta�y przy
 opracowywaniu tekstu nie jest zadowalaj�cy (w�a�ciwie, to mo�esz
 zrobi� co ci si� tylko zamarzy, je�li masz �r�d�a).

 1100..22..11..  UUmmiieejjssccoowwiieenniiee ii rroozzmmiiaarr wwyynniikkuu..

 Umiejscowienie, rozmiar i wspolczynik ksztaltu obrazu na stronie jest
 kontrolowane przez specyficzny dla danej drukarki sterownik w
 ghostscripcie. Je�li na przyk�ad zauwa�ysz, �e strony wychodz� za
 kr�tkie, albo za d�ugie, albo za du�e o dwa razy, mo�esz zajrze� do
 �r�de� twojego sterownika i dopasowa� jakiekolwiek parametry, kt�re ci
 nie pasuj�. Niestety, ka�dy sterownik jest inny, tak wi�c nie mog� ci
 powiedzie� co tak na prawd� trzeba zmieni�, ale wi�kszo�� z nich jest
 dobrze skomentowana.

 1100..22..22..  GGaammmmaa,, rroozzmmiiaarr ppiikksseellii iittpp..

 Wi�kszo�� nielaserowych drukarek ma t� wad�, �e rozmiar ich punktu
 jest raczej du�y. Rezultatem tego s� zbyt ciemne obrazy. Je�li masz
 ten problem, to powiniene� u�y� swojej w�asnej funkcji do transferu.
 Po prostu stw�rz nast�puj�cy plik w katalogu bibliotecznym
 ghostscripta i dodaj jego nazw� do wywo�ania _g_s zaraz przed w�a�ciwym
 plikiem. Mo�e b�dziesz musia� zmieni� warto�ci, �eby pasowa�y do
 twojej drukarki. Mniejsze warto�ci daj� ja�niejszy obraz. Mniejsze
 warto�ci (0.2 - 0.15) s� dobrym pomys�em, szczeg�lnie je�li tw�j
 sterownik u�ywa algorytmu Floyda-Steinberga do rasteryzacji kolor�w.

 ---8<---- gamma.ps ----8<---
 %!
 %transfer functions for cyan magenta yellow black
 {0.3 exp} {0.3 exp} {0.3 exp} {0.3 exp} setcolortransfer
 ---8<------------------8<---

 Przez dopasowanie tych warto�ci mo�liwe jest te� naprawienie drukarki,
 kt�ra ma jak�� wad� zwi�zan� z kolorami. Je�li b�dziesz robi� co�
 takiego, to radz� u�y� pliku _c_o_l_o_r_c_i_r_._p_s, kt�ry dostarczany jest wraz
 z ghostscriptem (w podkatalogu examples) jako przyk�adowa strona.

 1111..  JJaakk ddrruukkoowwaa�� ppoopprrzzeezz ssiiee��..

 Jedn� z zalet _l_p_d jest to, �e mo�na przy jego pomocy drukowa� na
 drukarkach przy��czonych fizycznie do innych komputer�w. Je�li dobrze
 dobierzesz kombinacj� skrypt�w i narz�dzi, to mo�esz drukowa� przy
 pomocy _l_p_r na wszelkiego rodzaju sieciach.

 1111..11..  NNaa hhoo��cciiee uunniixx//llppdd..

 Aby pozwoli� odleg�ym maszynom drukowa� na twojej drukarce, musisz je
 umie�ci� w /etc/hosts.equiv lub /etc/hosts.lpd. (Zauwa�, �e
 hosts.equiv ma kilka innych efekt�w; upewnij si�, �e wiesz co robisz
 je�li umieszczasz tam jak�� maszyn�). U�ywaj�c opcji _r_s mo�esz
 pozwoli� tylko wybranym u�ytkownikom na drukowanie; informacje na ten
 temat znajdziesz na stronie podr�cznika systemowego na temat _l_p_d.

 1111..11..11..  PPrrzzyy ppoommooccyy llppdd..

 Aby wydrukowa� co� na innej maszynie, musisz zrobi� pozycj� w
 /etc/printcap podobn� do tej:

 # REMOTE djet500
 lp|dj|deskjet:\
         :sd=/var/spool/lpd/dj:\
         :rm=jaka�.odleg�a.maszyna.pl:\
         :rp=nazwa_drukarki:\
         :lp=/dev/null:\
         :sh:

 Zauwa�, �e lokalnie nadal znajduje si� katalog zada� obs�ugiwany przez
 _l_p_d. Je�li odleg�a maszyna jest zaj�t� albo wy��czona, to zadania do
 drukowania czekaj� lokalnie a� b�d� mog�y zosta� wys�ane.

 1111..11..22..  PPrrzzyy ppoommooccyy rrllpprr..

 �eby omin�� konfigurowanie lokalnego lpd, mo�esz u�y� _r_l_p_r, aby wys�a�
 co� bezpo�rednio do kolejki na odleg�ej maszynie. Jest to bardzo
 u�yteczne je�li drukujesz na r�nych drukarkach tylko okazyjnie. Z
 og�oszenia o _r_l_p_r:

 Rlpr u�ywa protoko�u TCP/IP, aby wys�a� zadania do drukowania do
 serwera lpd gdziekolwiek w sieci.

 W przeciwie�stwie do lpr, ten *nie* wymaga, �eby drukarki, na kt�rych
 chcesz drukowa� by�y znane dla lokalnej maszyny (np. w /etc/printcap)
 i przez to jest bardziej elastyczny i wymaga mniejszego nak�adu pracy
 administratora.

 rlpr mo�e zosta� u�yty gdziekolwiek, gdzie m�g�by zosta� u�yty zwyk�y
 lpr, i jest kompatybilny w d� z tradycyjnym lpr z BSD.

 Najwa�niejsz� zalet� _r_l_p_r jest, to �e mo�na drukowa� *sk�dkolwiek
 dok�dkolwiek*, niezale�nie od tego jak jest skonfigurowany system, z
 kt�rego chcesz drukowa�. Mo�e te� by� u�yty jako serwer, tak �e
 klienci uruchomieni na innych maszynach jak np.: netscape, xemacs,
 itp. mog� drukowa� na twojej drukarce ma�ym nak�adem wysi�ku.

 Rlpr dost�pny jest na SUNSite Polska
 <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/printing/>.
 1111..22..  NNaa WWiinn9955,, WWiinnNNTT,, LLaannMMaannaaggeerr lluubb SSaammbbiiee..

 Jest dost�pne mini-HOWTO "Printing to Windows", kt�re zawiera wi�cej
 inormacji ni� ta sekcja.

 Mo�liwe jest przekierowanie kolejki lpd poprzez program _s_m_b_c_l_i_e_n_t
 (cz�� pakietu Samba) do serwisu drukowania Samby opartego na TCP/IP.
 Samba zawiera odpowiedni skrypt pod nazw� _s_m_b_p_r_i_n_t. Kr�tko m�wi�c
 umieszczasz plik konfiguracyjny dla konkretnej drukarki w katalogu
 zada� i instalujesz skrypt _s_m_b_p_r_i_n_t jako _i_f.

 Odpowiednia pozycja w /etc/printcap powinna wygl�da� tak:

 lp|remote-smbprinter:\
     :lp=/dev/null:sh:\
     :sd=/var/spool/lpd/lp:\
     :if=/usr/local/sbin/smbprint:

 Aby uzyska� wi�cej informacji na temat konfigurowania takich
 przypadk�w przeczytaj dokumentacj� zawart� w skrypcie _s_m_b_p_r_i_n_t.

 Mo�esz tak�e u�y� _s_m_b_c_l_i_e_n_t, aby wys�a� zadanie drukowania
 bezpo�rednio do serwisu drukowania SMB bez w��czania w to lpd. Zobacz
 informacje w podr�czniku systemowym.

 1111..33..  NNaa ddrruukkaarrccee NNeettWWaarree..

 Pakiet ncpfs zawiera narz�dzie zwane _n_p_r_i_n_t, kt�re udost�pnia te same
 funkcje co _s_m_b_p_r_i_n_t, ale dla NetWare. Pakiet ten mo�na zdoby� z
 SunSITE Polska
 <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/filesystems/ncpfs>. Z
 informacji LSM dla wersji 0.16:

      Przy pomocy pakietu ncpfs mo�esz montowa� wolumeny z serwera
      netware pod Linux-em. Mo�esz tak�e drukowa� na drukarkach
      pod��czonych pod netware oraz kolejkowa� zadania z netware
      dla drukarek pod��czonych do Linux-a. Potrzebujesz j�dra w
      wersji 1.2.x lub 1.3.54 i nowsze.  ncpfs nie b�dzie dzia�a�
      z j�drem w wersji 1.3 poni�ej 1.3.54.

 Aby _n_p_r_i_n_t dzia�a� poprzez lpd, musisz napisa� ma�y skrypt, aby
 drukowa� "stdin" na drukarkach NetWare i zainstalowa� go jako _i_f dla
 kolejki lpd. Otrzymasz co� takiego:

 sub2|remote-NWprinter:\
         :lp=/dev/null:sh:\
         :sd=/var/spool/lpd/sub2:\
         :if=/var/spool/lpd/nprint-script:

 Skrypt "nprint-script" mo�e wygl�da� tak:

 #! /bin/sh
 # Powiniene� najpierw sprawdzi� konto guest bez has�a!
 /usr/local/bin/nprint -S sie� -U nazwa -P has�o -q nazwa-kolejki -

 1111..44..  NNaa ddrruukkaarrccee EEtthheerrTTaallkk ((AAppppllee))..

 Pakiet netatalk zawiera co� podobnego do _n_p_r_i_n_t i _s_m_b_c_l_i_e_n_t. Werner
 Eugster udokumentowa� procedur� dla drukowania do i z sieci Apple o
 wiele lepiej ni� ja kiedykolwiek; zobacz to w Netatalk-HOWTO
 <http://thehamptons.com/anders/netatalk/>.

 Netatalk nie dzia�a z kart� SMC Etherpower PCI z chip-em DEC tulip.

 1111..55..  NNaa ddrruukkaarrccee HHPP ii iinnnnyycchh eetthheerrnneettoowwyycchh ddrruukkaarrkkaacchh..

 Drukarki HP i niekt�re inne maj� ethernetowy interfejs, do kt�rego
 mo�esz drukowa� bezpo�rednio u�ywaj�c lpd. Powiniene� post�powa�
 zgodnie z instrukcj�, kt�r� dosta�e� do drukarki albo jej sterownika,
 ale og�lnie takie drukarki "maj� uruchomionego" lpd i dostarczaj�
 jedn� lub wi�cej kolejek, do kt�rych mo�esz drukowa�. HP mo�e pracowa�
 np. z takim /etc/printcap:

 lj-5|remote-hplj:\
         :lp=/dev/null:sh:\
         :sd=/var/spool/lpd/lj-5:\
         :rm=nazwa.drukarki.pl:rp=raw:

 Drukarki HP LaserJet z interfejsami Jet Direct obs�uguj� generalnie
 dwie wbudowane kolejki - "surow�" (raw), kt�ra akceptuje PCL (i
 mo�liwe, �e PostScript) oraz "tekstow�", kt�ra akceptuje zwyk�e ASCII
 i radzi sobie od razu z "efektem schodk�w".

 W �rodowisku wielkoskalowym, szczeg�lnie w du�ych �rodowiskach, gdzie
 niekt�re drukarki nie obs�uguj� PostScript-u, mo�e by� po�yteczne
 ustawienie specjalnego serwera drukowania, do kt�rego drukuj�
 wszystkie maszyny i na kt�rym uruchamiane s� wszystkie zadania
 ghostscript-a.

 Pozwala to twojemu Linux-owi dzia�a� jako serwer wydruk�w dla
 drukarki, i u�tykownicy mog� robi� swoje wydruki szybko i zajmowa� si�
 swoimi rzeczami zamiast czeka� a� drukarka sko�czy drukowa� prac�
 kogo� innego.

 Aby to zrobi�, ustaw na swoim Linux-ie kolejk�, kt�ra wskazuje na HP
 LJ wyposa�on� w ethernet. Teraz ustaw kolejk� u wszystkich swoich
 klient�w na tego Linux-a.

 Niekt�re drukarki sieciowe HP wyra�nie nie akceptuj� ustawie� strony
 tytu�owej (banner page) wys�anej przez klienta; mo�na wy��czy� ich
 wewn�trznie generowan� tak� stron� przez po��czenie si� z drukark�
 telnet-em, wci�ni�cie dwa razy <<ENTER>>, wpisanie "banner: 0" i
 nast�pnie "quit". S� inne ustawienia, kt�re mo�esz tak�e w taki spos�b
 zmieni� - wpisz "?", �eby wy�wietli� ich list�.

 1111..55..11..  NNaa ssttaarrsszzyycchh ddrruukkaarrkkaacchh HHPP..

 Niekt�re drukarki (oraz "czarne pude�ka" z sieciowym drukowaniem)
 obs�uguj� tylko pro�ciutkie nie-protoko�owane czyste po��czenia TCP.
 Zauwa�alne w tej kategorii s� wczesne modele kart JetDirect (w�aczaj�c
 niekt�re JetDirectEx). Og�lnie, aby drukowa� na takiej drukarce,
 musisz otworzy� po��czenie TCP na danym porcie (z regu�y 9100) i
 umie�ci� tam swoje zadanie do wydrukowania. Mo�na to zaimplementowa�
 m.in. w Perl-u:

 #!/usr/bin/perl
 # Thanks to Dan McLaughlin for writing the original version of this
 # script (And to Jim W. Jones for sitting next to Dan when writing me
 # for help ;)

 $fileName = @ARGV[0];

 open(IN,"$fileName") || die "Can't open file $fileName";

 $dpi300     = "\x1B*t300R";
 $dosCr      = "\x1B&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;
 }

 1111..66..  UUrruucchhaammiiaanniiee _i_f dla odleg�ych drukarek.

 Jedn� wad� _l_p_d jest to, �e _i_f nie s� uruchamiane dla drukarek
 odleg�ych. Je�li oka�e si�, �e potrzebujesz _i_f, mo�esz ustawi�
 podw�jn� kolejk� i ponownie zkolejkowa� dany wydruk. We� ten _p_r_i_n_t_c_a_p
 jako przyk�ad:

 lj-5:remote-hplj:\
         :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=nazwa.drukarki.pl:\
         :rp=raw:sd=/var/spool/lpd/lj-5-raw:

 w �wietle tego, skrypt _f_i_l_t_e_r_-_l_j_-_5 to:

 #!/bin/sh
 gs <opcje> -q -dSAFER -sOutputFile=- - | \
         lpr -Plj-5-remote -U$5

 Opcja _-_U dla lpr dzia�a tylko wtedy je�li lpr jest uruchomiony jako
 demon i ustawia ona poprawnie zleceniodawc� kolejki w ponownie
 zainicjowanej kolejce. Powiniene� raczej u�y� bardziej pewnej metody
 na zdobycie identyfikatora u�ytkownika, poniewa� niezawsze jest to
 argument 5. Zobacz w podr�cznik systemowym na temat _p_r_i_n_t_c_a_p.

 1111..77..  ZZ WWiinnddoowwss..

 Drukowanie z Windows (czy OS/2) na Linux-ie jest obs�ugiwane poprzez
 SMB w pakiecie SAMBA, kt�ry tak�e umo�liwia wsp�dzielenie plik�w dla
 Windows.

 Samba zawiera ca�kiem poka�n� dokumentacj�. Mo�esz albo skonfigurowa�
 magic-filter na Linux-ie i drukowa� tam PostScript, albo zainstalowa�
 sterowniki dla konkretnej drukarki na wszystkich komputerach z
 Winndows i mie� kolejk� dla nich bez �adnych filtr�w. Poleganie na
 tych sterownikach mo�e czasami dawa� lepsze efekty, ale jest to
 uci��liwe ze strony administratora je�li jest du�o komputer�w z
 Windows. Wi�c spr�buj najpierw PostScript-u.

 1111..88..  ZZ AAppppllee..

 Netatalk obs�uguje drukowanie z Apple poprzez EtherTalk.  Na stronie
 Netatalk HOWTO <http://thehamptons.com/anders/netatalk/> znajdziesz
 wi�cej informacji.

 1111..99..  ZZ NNeettwwaarree..

 Jest jaka� obs�uga drukowania z Netware przez Linux-a oferowana przez
 czy z powodu Calder-y, ale nie mam poj�cia czy Linux mo�e oferowa�
 drukarki dla klient�w Netware.

 1122..  JJaakk ddrruukkoowwaa�� nnaa ffaaxx--iiee..

 1122..11..  UU��yywwaanniiee ffaaxxmmooddeemmuu..

 Jest wiele program�w, kt�re pozwol� ci na odbieranie i wysy�anie
 fax�w. Jednym z bardziej z�o�onych jest program Sama Lefflera pod
 nazw� _H_y_l_a_F_a_x. Jest on dost�pny na ftp.sgi.com. Obs�uguje on wiele
 rzeczy od wi�kszej ilo�ci modem�w do rozg�aszania (broadcasting).

 Dost�pny jest tak�e _e_f_a_x, prosty program wysy�aj�cy fax-y - jest on
 lepszym wyborem dla Linux-owc�w. Program _m_g_e_t_t_y mo�e odbiera� faxy (a
 nawet wysy�a� poczt� g�osow� na niekt�rych modemach!).

 1122..22..  UU��yywwaanniiee ZZddaallnneeggoo SSeerrwwiissuu DDrruukkoowwaanniiaa..

 Dost�pny jest eksperymentalny serwis, kt�ry pozwala ci na wys�anie
 poczty elektronicznej z do��czonym fragmentem, kt�ry ma by�
 wydrukowany na faxie gdzie� indziej. Obs�ugiwane s� takie formaty jak
 PostScript, tak wi�c pomimo, i� nie obejmuje swym zasi�giem
 wszystkiego, mo�e by� on bardzo przydatnym serwisem. Wi�cej informacji
 na temat drukowania poprzez Zdalny Serwis Drukowania znajdziesz na
 stronie o zdalnym    drukowaniu <http://www.tpc.int/>.

 1133..  JJaakk wwyyggeenneerroowwaa�� ccoo�� wwaarrtteeggoo ddrruukkoowwaanniiaa..

 Tutaj wchodzimy w prawdziw� sie� oprogramowania. Og�lnie, Linux mo�e
 uruchamia� cztery typy binari�w z r�nym sukcesem: Linux, iBCS,
 Win16/Win32s (za pomoc� dosemu i kiedy� Wine) oraz Mac/68k (przy
 pomocy  Executora). Ja om�wi� tylko czysto-Linux-owe i popularne Unix-
 owe oprogramowanie, poza tym WordPerfect dla SCO i przypuszczalnie
 inne komercyjne procesory tekstu tak�e dobrze dzia�aj� na Linux-owej
 emulacji iBCS.

 Dla Linux-a wyb�r jest przewa�nie ograniczony do oprogramowania
 dost�pnego og�lnie dla Unix-a.

 1133..11..  JJ��zzyykkii ""MMaarrkkuupp""..

 Wi�kszo�� j�zyk�w "markup" jest bardziej elastyczna dla wi�kszych albo
 powtarzalnych projekt�w, gdzie chcesz, aby komputer kontrolowa� wygl�d
 rezultatu/wydruku, aby utworzy� og�lny wz�r. Pr�ba zrobienia jakiego�
 �adnego znaczka  w j�zyku "markup" przypuszczalnie by "bola�a"...

    nnrrooffff
       To by� jeden z pierwszych j�zyk�w "markup" dla Unix-a. Strony z
       podr�cznika systemowego s� najpopularniejszym przyk�adem tekst�w
       sformatowanych przy pomocy makr *roff-a. Wiele ludzi przeklina
       ten j�zyk, ale nroff ma, przynajmniej dla mnie, bardziej z�o�on�
       sk�adni� ni� to jest konieczne i przypuszczalnie jest z�ym
       wyborem dla nowych prac. Jednak warto jest wiedzie�, �e mo�esz
       zamieni� napisan� w groff-ie stron� bezpo�rednio na PostScript.
       Wi�kszo�� polece� "man" zrobi to za ciebie np. _m_a_n _-_t _c_o_�_| _l_p_r.

    TTeeXX
       oraz j�zyk makr - LaTeX, s� jednym z najcz�ciej u�ywanych
       j�zyk�w "markup" na Unix-ie. Techniczne prace s� cz�sto napisane
       w LaTeX-u poniewa� bardzo upraszcza okre�lenie wygl�du tekstu i
       jest wwccii���� jednym z niewielu system�w obr�bki tekstu, kt�ry
       obs�uguje zapisy matematyczne dok�adnie i dobrze na raz.
       Formatem wyj�ciowym TeX-a jest _d_v_i (DeVice Independent - czyli
       niezale�ny od urz�dzenia [przyp. t�um.]) i mo�na go zamieni� na
       PostScript lub Hewlett Packard PCL przy pomocy _d_v_i_p_s lub _d_v_i_l_j.
       [TeX czyta si� "tech" - przyp. t�um.].

    _S_G_M_L
       Dost�pny jest przynajmniej jeden program do obr�bki tego j�zyka
       na Unix-a; formuuje on podstawy systemu dokument�w Linuxdoc-
       SGML. Mo�e on tak�e obs�ugiwa� inne DTD.

    _H_T_M_L
       Kto� zasugerowa�, �e dla prostych projekt�w, wystarczy napisanie
       w HTML-u i drukowa� przy pomocy Netscape-a. Ja si� z tym jednak
       nie zgadzam.

 1133..22..  WWYYSSIIWWYYGG..

 [ Jest to skr�t od What You See Is What You Get - czyli to co widzisz
 to dostaniesz, a oznacza, i� wydrukowane zostanie DOK�ADNIE to co jest
 widoczne na ekranie i DOK�ADNIE w taki sam spos�b - przyp. t�um.]

 W tej chwili jest niedob�r oprogramownia do obr�bki tekstu WYSIWYG.
 Nie b�j si� napisa� jakiego� i daj mi zna� je�li omin��em co� tutaj.

    _L_y_X
       Jest to zako�czenie dla LaTeX-a, kt�re wygl�da bardzo
       obiecuj�co. Odwied� stron� domow� LyX-a <http://www-
       pu.informatik.uni-tuebingen.de/users/ettrich/> je�li chcesz
       wi�cej informacji.

    _A_n_d_r_e_w _U_s_e_r _I_n_t_e_r_f_a_c_e _S_y_s_t_e_m
       AUIS zawiera _e_z - edytor w stylu WYSIWYG z wi�kszo�ci� cech
       podstawowego procesora tekstu, mo�liwo�ciami HTML oraz pe�n�
       obs�ug� poczty elektronicznej MIME i grup dyskusyjnych (news-
       ow).

    _O_f_e_r_t_y _k_o_m_e_r_c_y_j_n_e
       Przynajmniej Caldera i Red Hat dostarczaj� pakiety zawieraj�ce
       zwyk�e aplikacje biurowe jak edytor w stylu WYSIWYG i arkusz
       kalkulacyjny. Powiedzia�bym, �e robi� dobr� robot�, ale nigdy
       nie u�ywa�em takich pakiet�w. S�dze, �e Caldera dostarcza tak�e
       WABI firmy Sun, tak wi�c m�g�by� przypuszczalnie uruchomi� jaki�
       MS Office pod tym je�li musia�by� zintegrowa� si� z plikami
       innych.

       Jeff Phillips _<_j_e_f_f_@_I___R_A_T_U_S_._o_r_g_> u�ywa WordPerfect-a dla Linux-a
       z Caldery (w Slackware r�nego rodzaju) i twierdzi, �e dzia�a mu
       to dobrze. Wygl�da na to, �e zawiera on wbudowan� obs�ug�
       drukarek, jak to mo�na by si� spodziewa�. Caldera powinna mie�
       jakie� informacje na swojej stronie WWW
       <http://www.caldera.com/>.

       RedHat dostarcza pakiet o nazwie _A_p_p_l_i_x_w_a_r_e; Ich stron� mo�na
       znale�� pod adresem www.redhat.com.

       Inni sprzedawcy niech mi dadz� zna� jakie maj� oferty.

 1144..  PPooddggll��dd pprrzzeedd wwyyddrruukkiieemm..

 Prawie wszystko co mo�esz wydrukowa�, mo�esz te� zobaczy� na ekranie.

 1144..11..  PPoossttSSccrriipptt..

 Ghostscript posiada sterownik do X11; najlepiej je�li jest on u�yty
 pod kontrol� podgl�darki PostScript o nazwie _G_h_o_s_t_v_i_e_w.  Najnowsza
 wersja tego programu powinna by� tak�e w stanie wy�wietli� pliki PDF.

 1144..22..  TTeeXX ddvvii..

 Niezale�ne od urz�dzenia (DeVice Independant) pliki TeX-a mog� by�
 wy�wietlane w X11 u�ywaj�c _x_d_v_i. Nowsze wersje _x_d_v_i wywo�uj�
 ghostscript, aby wykona� polecenia typowo PostScriptowe.

 Jest tak�e sterownik na VT100. Nazywa si� _d_g_v_t. _T_m_v_i_e_w dzia�a z Linux-
 em i svgalib je�li to wszystko na co ci� sta�.

 1155..  DDrruukkaarrkkii sszzeerreeggoowwee ppoodd llppdd..

 1155..11..  UUssttaawwiiaanniiee ww pprriinnttccaapp--iiee..

 Lpd udostepnia pi�� atrybut�w, kt�re mo�esz ustawi� w pliku
 /etc/printcap, aby kontrolowa� wszystkie ustawienia portu szeregowego,
 do kt�rego do��czona jest drukarka. Przeczytaj stron� podr�cznika
 systemowego na temat _p_r_i_n_t_c_a_p
 _<_h_t_t_p_:_/_/_w_w_w_._p_i_c_a_n_t_e_._c_o_m_/_~_g_t_a_y_l_o_r_/_p_h_t_/_m_a_n_/_p_r_i_n_t_c_a_p_._h_t_m_l> i zapami�taj
 znaczenia: _b_r_#, _f_c_#, _x_c_#, _f_s_# i _x_s_#. Ostatnie cztery z tych atrybut�w
 to mapy bitowe oznaczaj�ce ustawienia portu. Atrybut _b_r_# jest
 pr�dko�ci�: np. _b_r_#_9_6_0_0.

 T�umaczenie z postaci _s_t_t_y na _p_r_i_n_t_c_a_p jest bardzo proste. Je�li
 musisz, to zobacz stron� podr�cznika systemowego na temat _s_t_t_y.

 U�yj _s_t_t_y, aby ustawi� port drukarki, tak �eby� m�g� wys�a� plik do
 tego portu (poleceniem _c_a_t) i otrzyma� poprawny wydruk. Oto co
 wy�wietla polecenie _s_t_t_y _-_a dla mojego portu drukarki:

 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

 Jedynymi zmianami mi�dzy tym, i stanem w jakim port jest inicjowany
 podczas startu s� -clocal, -crtscts i ixon. Tw�j port mo�e mie� inne
 ustawienia w zale�no�ci od tego jak twoja drukarka kontroluje przep�yw
 (flow control).

 _s_t_t_y u�ywa si� w�a�ciwie w dziwny spos�b. Poniewa� polecenie _s_t_t_y
 operuje na terminalu pod��czonym do jego standardowego wej�cia, ty
 u�ywasz je, aby manipulowa� danym portem szeregowym przez u�ycie znaku
 < jak powy�ej.

 Jak ju� masz dobre ustawienia, tak �e _c_a_t _p_l_i_k _> _/_d_e_v_/_t_t_y_S_2 (w moim
 przypadku) dzia�a, zajrzyj do pliku
 /usr/src/linux/include/linux/termios.h. Zawiera on wiele #define
 (definicji) i kilka struktur - mo�esz go sobie wydrukowa� (przecie�
 drukarka dzia�a, nie ?) i u�ywa� jako pomocy. Id� do sekcji, kt�ra
 zaczyna si� tak:

 /* c_cflag bit meaning */
 #define CBAUD   0000017

 Sekcja ta zawiera znaczenia bit�w _f_c_# i _f_s_#. Zauwa�ysz, �e nazwy (po
 ilo�ci bod�w) s� identyczne z tymi z polecenie _s_t_t_y. A nie m�wi�em, �e
 to b�dzie proste ?

 Zobacz, kt�re z tych ustawie� maj� znak "-" na pocz�tku przy poleceniu
 _s_t_t_y. Zsumuj te wszystkie liczby (s� one zapisane w systemie
 �semkowym). To b�d� te bity, kt�re b�dziesz chcia� wyzerowa�, tak wi�c
 wynik jest tym, co masz wpisa� do _f_c_#. Pami�taj oczywi�cie, �e
 b�dziesz ustawia� bity zaraz po tym jak je wyzerujesz, tak wi�c mo�esz
 u�y� "_f_c_#_0_1_7_7_7_7_7" (ja tak robi�).

 Teraz zr�b to samo dla tych ustawie�, kt�re nie maj� znaku "-" na
 pocz�tku w poleceniu _s_t_t_y. W moim przyk�adzie wa�ne s� CS8 (0000060),
 HUPCL (0002000) i CREAD (0000200). Zapami�taj te� ustawienie dla
 swojej pr�dko�ci (u mnie jest to 0000015). Zsumuj to wszystko - w moim
 przyk�adzie b�dzie to 0002275. To b�dzie to, co masz wpisa� do _f_s_#.
 ("_f_s_#_0_2_2_7_5 dzia�a u mnie.)

 Zr�b to samo z ustawieniem i zerowaniem dla nast�pnej sekcji pliku
 nag��wkowego. "c_lflag bits". W moim przypadku nie musia�em niczego
 ustawia�, tak wi�c u�y�em tylko "_x_c_#_0_1_5_7_7_7_7" i "_x_s_#_0".

 1155..22..  SSttaarrsszzee ddrruukkaarrkkii sszzeerreeggoowwee,, kktt��rree gguubbii�� zznnaakkii..

 Jon Luckey pisze, �e u niekt�rych starszych szeregowych drukarek z
 interfejsem za 10 cent�w i ma�ym buforem, stop w kontroli przep�ywu
 oznacza rrzzeecczzyywwiissttee stop dla drukowania. Potem odkry�, �e �eby
 naprawi� t� niedogodno�� wystarczy wy��czy� FIFO w uk�adzie 16550
 poleceniem _s_e_t_s_e_r_i_a_l (�eby to zrobi� po prostu podajesz typ ukladu
 uart jako 8250).

 1166..  WWyyrraazzyy uuzznnaanniiaa..

 Informacje na temat _s_m_b_p_r_i_n_t zosta�y zaczerpni�te z artyku�u Marcela
 Roelofsa <[email protected]>.

 Informacje na temat _n_p_r_i_n_t i u�ywania drukarek NetWare zosta�y
 dostarczone przez Michaela Smitha <[email protected]>.

 Sekcja na temat drukarek szeregowych pod lpd zosta�a napisana przez
 Andrew Teffta <[email protected]>.

 Te wszystkie gammy i inne takie dla "gs" zosta�y dostarczone przez
 Andreasa <[email protected]>.

 Dwa paragrafy na temat 30 sekundowego "closing_wait" przy sterownikach
 szeregowych zosta�y dostarczone przez Chrisa Johnsona
 <[email protected]>.

 Robert Hart przys�a� kilka doskona�ych paragraf�w na temat ustawiania
 serwera drukarek dla po��czonych HP, kt�ych ja u�ywam w niezmienionej
 wersji.

 I specjalne podzi�kowania dla tuzin�w nad tuzinami tych, kt�rzy
 wskazywali liter�wki, z�e adresy i b��dy w tym dokumencie przez lata.

 1166..11..  OOdd tt��uummaacczzaa..

 Wersja ta jest wersj� ostateczn�. Dodany zosta� odno�nik do w�a�nie
 powsta�ego t�umaczenia dokumentu Printing-Usage-HOWTO.

 T�umaczenie to jest chronione prawami autorskimi � Bartosza
 Maruszewskiego.  Dozwolone jest rozprowadzanie i dystrybucja na
 prawach takich samych jak dokument oryginalny.

 Je�li znalaz�e� jakie� ra��ce b��dy ortograficzne, gramatyczne,
 sk�adniowe, techniczne (a mo�e ich tu troch� by�, bo nie znam si� tak
 bardzo na poligrafii) to pisz do mnie:

 [email protected]

 Oficjaln� stron� t�umacze� HOWTO jest http://www.jtz.org.pl/

 Aktualne wersje przet�umaczonych dokument�w znajduj� si� na tej�e
 stronie. Dost�pne s� tak�e poprzez anonimowe ftp pod adresem
 ftp.jtz.org.pl w katalogu /JTZ.

 Przet�umaczone przeze mnie dokumenty znajduj� si� tak�e na mojej
 stronie WWW. <http://www.jtz.org.pl/bartek/tlumaczenie.html> S� tam
 te� odwo�ania do Polskiej Strony T�umaczeniowej.

 Kontakt z nasz� grup�, grup� t�umaczy mo�esz uzyska� poprzez list�
 dyskusyjn� [email protected]. Je�li chcesz sie na ni� zapisa�, to wy�lij
 list o tre�ci subscribe jtz Imi� Nazwisko na adres
 [email protected]