  Drukowanie w Linux-ie
  Autor: Grant Taylor, gtaylor+pht@picante.com
  v3.14, 23 Wrzenia 1997
  WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll
  v1.3, 12 Lutego 1998

  Jest to dokument zawierajcy informacje na takie tematy jak: gen
  erowanie wydruku, podgldnicie go przed drukowaniem, wydrukowanie go
  oraz przefaxowanie czego pod Linux-em (i innymi Unix-ami w
  oglnoci).  Dokument ten zosta napisany w standardzie ISO-8859-2.
  Orygina mona 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.      Urzdzenia dotyczce drukarki w jdrze.

  3.1.    Urzdzenie lp.

  3.2.    Urzdzenie parport (jdra >= 2.1.33)

  3.3.    Urzdzenia szeregowe.

  4.      Obsugiwane drukarki.

  5.      Jakie oprogramowanie do kolejkowania ?

  6.      Jak to dziaa - podstawy.

  7.      Jak poustawia to wszystko - podstawy.

  7.1.    Tradycyjna konfiguracja lpd.

  7.2.    Prawa dostpu do plikw.

  8.      Zdobywanie oprogramowania do drukowania.

  8.1.    Magicfilter.

  8.2.    Filtr APS.

  8.3.    EZ-Magic.

  9.      Rozwizania sprzedawcw.

  9.1.    RedHat.

  9.2.    Inne dystrybucje.

  10.     Ghostscript.

  10.1.   Wywoywanie Ghosscript-u.

  10.2.   Dostrajanie wynikw w Ghostscripcie.

  10.2.1. Umiejscowienie i rozmiar wyniku.

  10.2.2. Gamma, rozmiar pikseli itp.

  11.     Jak drukowa poprzez sie.

  11.1.   Na hocie 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.   Uywanie faxmodemu.

  12.2.   Uywanie Zdalnego Serwisu Drukowania.

  13.     Jak wygenerowa co wartego drukowania.

  13.1.   Jzyki "Markup".

  13.2.   WYSIWYG.

  14.     Podgld 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, ktre gubi znaki.

  16.     Wyrazy uznania.

  16.1.   Od tumacza.
  ______________________________________________________________________

  11..  WWpprroowwaaddzzeenniiee..

  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 pewnoci prostsze jeli chodzi o
  administrowanie w duych sieciach lokalnych.

  Dokument ten jest tak uoony, e wikszo bdzie musiaa przeczyta
  tylko pierwsz poow czy co koo tego. Wikszo nieciekawych
  informacji i takich, ktre s zalene od sytuacji znajduje si w
  drugiej poowie i atwo je znale w spisie treci, podczas gdy
  informacje zawarte w sekcjach 9 i 10 bd potrzebne wikszoci.

  Wikszo informacji z poprzedniej wersji zostao usunitych, poniewa
  zdecydowaem si na napisanie tego dokumentu cakowicie od nowa.
  Zrobiem tak, bo poprzednie wersje byy takie wielkie - okoo 60 stron
  A4, i narracja bya do kitu. Jeli nie znalaze 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
  oczywicie take dystrybuowana przez Projekt Dokumentacji Linux-a;
  archiwum zawierajce dokumenty HOWTO moesz znale w Polsce pod
  adresem ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/docs/HOWTO.

  11..11..  HHiissttoorriiaa

  To jest trzecia generacja, a szczerze mwic, to trzecia edycja
  zrobiona od nowa, dokumentu Printing-HOWTO. Historia PHT moe w ujciu
  chronologicznym wyglda tak:

  1. Napisaem Printing-HOWTO w 1992 w odpowiedzi na wiele pyta
     pojawiajcych si na grupie comp.os.linux dotyczcych drukowania
     napisaem PHT i wysaem go tam. Dokument ten wyprzedzi Projekt
     Dokumentacji Linux-a o kilka miesicy i by pierwszym dokumentem
     a'la FAQ zwanym HOWTO. Edycja ta bya w czystym ASCII.

  2. Po doczeniu do PDL, PHT zostao 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
     wsptworzylimy PHT. Po jakim czasie doczylimy prac Karla
     Auera_<_K_a_r_l_._A_u_e_r_@_a_n_u_._e_d_u_._a_u_>. Ta generacja PHT bya w TeXinfo oraz
     take w PS, HTML, ASCII i Info.

  3. Po tym jak pozwolilimy PHT eby troch "podgnio" przez rok i po
     nieskutecznych poszukiwaniach jakiej osoby, ktra zajaby si
     PHT, miao miejsce powstanie tej wersji. Ta generacja PHT jest w
     Linuxdoc-SGML.

  11..22..  PPrraawwaa aauuttoorrsskkiiee..

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

  22..  JJaakk ddrruukkoowwaa..

  Jeli masz ju zainstalowany program lpd i jest on ustawiony dla
  twojej drukarki przez kogokolwiek, to wszystko czego potrzebujesz, to
  nauczy si posugiwa 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 uywanych do
  manipulowania kolejk wydruku.
  Jednak jeli masz nowy system albo now drukark, to bdziesz musia
  ustawi serwis drukowania w ten lub inny sposb zanim bdziesz mg
  drukowa. Czytaj dalej!

  33..  UUrrzzddzzeenniiaa ddoottyycczzccee ddrruukkaarrkkii ww jjddrrzzee..

  33..11..  UUrrzzddzzeenniiee llpp..

  Jdro Linux-a (<=2.1.32), zakadajc, e wkompilowae lub zaadowae
  urzdzenie _l_p (polecenie cat /proc/devices powinno pokaza urzdzenie
  _l_p), dostarcza jedno lub wicej urzdze _/_d_e_v_/_l_p_0, _/_d_e_v_/_l_p_1 i
  _/_d_e_v_/_l_p_2. NNiiee ss one kojarzone dynamicznie, ale s one na stae
  przypisane konkretnym adresom I/O. Oznacza to, e twoja pierwsza
  drukarka moe by na _l_p_0, albo _l_p_1 w zalenoci od sprztu. Sprbuj
  obu. ;)

  Kilku uytkownikw zgosio, e ich dwukierunkowe porty lp nie zostaj
  wykryte jeli uywaj starszego, jednokierunkowego kabla.  Sprawd czy
  masz przyzwoity kabel.

  Na danym porcie nie mona mie na raz sterownikw _p_l_i_p oraz _l_p. Ale
  mona zaadowa jeden albo drugi sterownik w kadej chwili; rcznie
  albo przez _k_e_r_n_e_l_d przy jdrze w wersji 2.x.x (lub pniejsze 1.3.x).
  Jeli dokadnie ustawisz przerwania itp., to moesz przypuszczalnie
  mie _p_l_i_p na jednym porcie, a _l_p na drugim. Jedna osoba zrobia tak,
  przez edycj sterownikw; z niecierpliwoci oczekuj osoby, ktra
  zrobiaby to tylko przy uyciu argumentw z linii polece.

  Jest takie narzdzie 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
  ktrego "root" moe ustawia przerwania i inne opcje na urzdzeniu _l_p.

  Jeli urzdzenie _l_p jest wbudowane w jdro w wersji 1.3.x lub wyszej,
  to moesz przekaza parametr lp= do jdra, w ktrym moesz ustawi
  przerwanie, adres itp.

  Jeli sterownik lp jest wbudowany w jdro, to moesz uy parametru
  LILO/LOADLIN, aby ustawi adres portu i przerwanie, ktrych sterownik
  bdzie uywa.

  Skadnia:        lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]

  Na przykad:     lp=0x378,0   lub   lp=0x278,5,0x378,7 **

  Zauwa, e jeli uywasz tego parametru, to musisz poda *wszystkie*
  porty, ktrych bdziesz uywa - nie ma wartoci domylnych. Moesz
  wyczy wbudowany sterownik parametrem lp=0.

  Jeli adujesz sterownik drukarki jako modu w wersji jdra 2.x.x lub
  pnej 1.3.x, to moesz poda przerwanie i port jako parametr w linii
  polece przy _i_n_s_m_o_d (albo w pliku /etc/conf.modules, eby dziaao
  take 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. Wicej informacji znajdziesz w podrczniku
  systemowym _m_a_n na stronie dotyczcej _i_n_s_m_o_d.

  **Dla tych, ktrzy (jak ja) nigdy nie mog znale standardowego portu
  kiedy go potrzeba, to s one takie jak w podanym wyej drugim
  przykadzie. Drugi port (_l_p_0) jest pod adresem 0x3bc. Nie mam pojcia
  jakiego przerwania zwykle uywa.
  Kod rdowy linux-owego sterownika portu rwnolegego jest w pliku
  /usr/src/linux/drivers/char/lp.c

  33..22..  UUrrzzddzzeenniiee ppaarrppoorrtt ((jjddrraa >>== 22..11..3333))

  Poczwszy od jdra w wersji 2.1.33 (dostpne take jako ata dla jdra
  2.0.30), urzdzenie lp jest po prostu klientem nowego urzdzenia
  parport. Dodanie urzdzenia parport naprawia pewn ilo bdw, ktre
  drczyy poprzedni sterownik urzdzenia lp - moe ono wpdzieli port
  z innym urzdzeniem, przypisuje dynamicznie dostpne porty rwnolege
  numerom urzdze zamiast wymusza z gry narzucon komunikacj
  pomidzy adresami I/O a numerami portw i tak dalej.

  Wicej szczegw na temat parport podam kiedy sam znajd si w
  sytuacji kiedy bd tego uywa. A w midzyczasie moesz przeczyta
  plik Documentation/parport.txt w drzewie ze rdami jdra albo
  zajrzyj na stron parport
  <http://www.cyberelk.demon.co.uk/parport.html>.

  33..33..  UUrrzzddzzeenniiaa sszzeerreeggoowwee..

  Urzdzenia szeregowe pod Linux-em zwykle nazywaj si /dev/ttyS1 lub
  podobnie. Narzdzie _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 przegldanie lub okrelanie 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 waciwoci oraz na skonfigurowanie
  IRQ i adresw I/O dla niestandardowych portw. Wicej na temat portw
  szeregowych znajdziesz w Serial-HOWTO
  <http://www.jtz.org.pl/Html/Serial-HOWTO.pl.html> dostpnym take w
  jzyku polskim.

  Jeli uywasz wolnej drukarki szeregowej z kontrol przepywu (flow
  control), moe si okaza, e niektre z twoich wydrukw s obcinane.
  Moe by to spowodowane zachowaniem portu szeregowego, ktry wyrzuca
  wszystkie znaki ze swojego bufora po 30 sekundach od momentu
  zamknicia portu. W buforze moe si znajdowa do 4096 znakw a jeli
  twoja drukarka uywa kontroli przepywu i jest wystarczajco wolna,
  tak e nie moe przyj wszystkich 4096 znakw z portu w cigu 30
  sekund, po tym jak oprogramowanie drukujce zakmno port, to kocowa
  zawarto bufora zostanie utracona. Jeli w wyniku polecenia _c_a_t _p_l_i_k
  _> _/_d_e_v_/_t_t_y_S_2 pojawia si cay wydruk dla krtkich plikw, a dusze s
  obcinane, to to moe by twj problem.

  Okres 30 sekund moe zosta zmieniony poprzez opcj "closing_wait"
  programu setserial (wersja 2.12 i pniejsze). Porty szeregowe maszyny
  s z reguy inicjowane poprzez odwoanie do setserial w pliku
  startowym rc.serial. Odwoanie do portu szeregowego drukarki moe by
  zmodyfikowane, tak aby ustawi closing_wait w tym samym czasie kiedy
  ustawia inne parametry tego portu.

  44..  OObbssuuggiiwwaannee ddrruukkaarrkkii..

  Jdro Linux-a obsuguje raczej kad drukark, ktr moesz podczy
  do szeregowego albo rwnolegego portu, ale s rzeczy na ktre trzeba
  spojrze oraz drukarki ktrych nie bdziesz w stanie uy nawet
  pomimo, e (elektrycznie mwic) mog one komunikowa si z Linux-em.
  W grupie tych niekompatybilnych drukarek przewaaj te, ktre polegaj
  na "Windows Printing System". (Czsto s one oznaczone "for Windows".)
  Te drukarki _n_i_e wsppracuj z Linux-em. Nie maj adnych
  inteligentnych czci i polegaj na procesorze komputera, ktry musi
  zrobi wikszo tego co kiedy robiy procesory w drukarce. Niestety
  te zadania mog by wykonane tylko przez sterowniki dostarczone przez
  producenta, ktre dziaaj tylko pod Windows. Wic nie kupuj takiej
  drukarki do Linux-a.

  Jeli chodzi o drukarki, ktre _d_z_i_a__a_j_ z Linux-em, to najlepszym
  wyborem jest kupienie drukarki z interpreterem PostScript-u. Prawie
  kade oprogramowanie pod Unix-a, ktre tworzy jaki drukowalny wynik
  tworzy go w PostScripcie, wic oczywistym jest, e najlepiej kupi
  drukark obsugujc PostScript. Niestety, ale obsuga tego jzyka
  poza drukarkami laserowymi jest bardzo rzadko spotykana.

  Jeli nie uda ci si wydoby (raczej wikszego) budetu potrzebnego na
  kupno drukarki PostScript-owej, moesz uy jakiejkolwiek drukarki
  obsugiwanej przez Ghostcript, darmowy interpreter PostScript-u
  uywanego do druku PostScript-owego. Na domowej stronie
  Ghostscript-u <http://www.cs.wisc.edu/~ghost/> znajdziesz obsugiwane
  drukarki i informacje na temat nowych i ekpserymentalnych sterownikw.
  Pom prosz w ulepszaniu Ghostscript-u poprzez zgaszanie sukcesw
  bd poraek jak o to prosz.

  55..  JJaakkiiee oopprrooggrraammoowwaanniiee ddoo kkoolleejjkkoowwaanniiaa ??

  Do niedawna wybr dla uytkownikw Linux-a by prosty - wszyscy
  uywali tego samego, starego lpd wzitego bezpordnio z kodu Net-2
  BSD. Nawet dzisiaj wikszo sprzedawcw dostarcza ten wanie
  program. Ale to si zaczyna zmienia. Systemy SVR4 wczajc w to
  Solaris Sun-a dostarczaj cakiem inny pakiet do kolejkowania oparty
  na _l_p_s_c_h_e_d. Pojawiaj si take oznaki, i niektrzy sprzedawcy Linux-
  a przejd na dostarczanie LPRng, o wiele mniej zabytkowej
  implementacji, ktra jest dostpna za darmo. LPRng jest o wiele
  prostszy w administrowaniu dla wikszych instalacji i ma o wiele
  przyjaniejsz baz danych anieli lpd.

  Na dzie dzisiejszym nawet w wietle nowych opcji, lpd jest
  przypuszczalnie dobry dla wikszoci uytkownikw Linux-a. Raz
  ustawiony dziaa dobrze i jest atwy w zrozumieniu oraz szeroko
  udokumentowany w ksikach o Unix-ie.

  Jeli chcesz wicej informacji na temat LPRng to zobacz LPRng - An
  Enhanced Printer Spooler
  <http://ltpwww.gsfc.nasa.gov/ltpcf/about/unix/Depotdoc/LPRng/>.
  Przysze wersje tego dokumentu bd zawieray informacje o zwykym lpd
  oraz o LPRng.

  66..  JJaakk ttoo ddzziiaaaa -- ppooddssttaawwyy..

  eby drukowanie dziaao, musisz zrozumie jak dziaa system lpd.

  LPD to skrt od Line Printer Daemon i odnosi si w rnych kontekstach
  do demona i do caej kolekcji programw, ktre drukuj. S to:

     llppdd
        Demon kolejkowania. Jeden z nich jest uruchomiony, aby
        kontrolowa wszystko na maszynie, I jeden jest uruchamiany dla
        drukarki podczas drukowania.

     llpprr
        Polecenie dla uytkownikw do kolejkowania wydrukw. Lpr
        kontaktuje si z lpd i umieszcza nowe zadanie w katalogu
        kolejkowania.

     llppqq
        Wywietla wydruki umieszczone w kolejce.

     llppcc
        Polecenie do kontrolowania systemu lpd. Poleceniem tym moesz
        wystartowa, zatrzyma, zmieni porzdek w kolejce drukowania.

     llpprrmm
        Usuwa wydruk z kolejki.

  To jak to wszystko dziaa ? No... kiedy system startuje, uruchamiany
  jest lpd. Czyta on plik /etc/printcap, aby si dowiedzie dla jakich
  drukarek bdzie obsugiwa kolejki. Za kadym 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 wikszo drukarek bya drukarkami
  liniowymi - tzn. ludzie drukowali w wikszoi teksty w ASCII. Jak si
  okazao, nie trzeba duo pracy, aby lpd dziaa dobrze dla
  dzisiejszych wydrukw takich jak PostScript, czy text, czy dvi, czy
  ...

  77..  JJaakk ppoouussttaawwiiaa ttoo wwsszzyyssttkkoo -- ppooddssttaawwyy..

  77..11..  TTrraaddyyccyyjjnnaa kkoonnffiigguurraaccjjaa llppdd..

  Minimalne ustawienia objawiaj si tym, e system moe kolejkowa
  pliki i je drukowa. Nie bdzie 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, wic czytaj dalej !

  Oglnie mwic, 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 wyglda 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 kady wydruk, ktra
  drukuje na urzdzeniu /dev/lp0 i ktra nie ma strony tytuowej (z
  danymi o osobie, ktra drukowaa itp.)  na pocztku wydruku.

  Teraz poczytaj stron w podrczniku systemowym na temat _p_r_i_n_t_c_a_p.

  Powyszy przykad wyglda bardzo prosto, ale jest tam jeden kruczek -
  drukarka bdzie tak dugo dobrze drukowaa, dopki bd wysya pliki,
  ktre ona rozumie. Na przykad wysanie na drukark zwykego unix-
  owego pliku tekstowego spowoduje, e na papierze pojawi si co
  takiego:

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

  Wysanie na t drukark pliku w PostScripcie spowodowaoby
  wydrukowanie piknej listy polece PostScript z dodatkowym efektem
  schodkw :) - be adnego poytecznego efektu.

  Wynika z tego jasno, e czego tu jeszcze brakuje - i to jest wanie
  celem filtrowania. Ci, ktrzy czytali stron podrcznika systemowego o
  pliku "printcap" mogli zuway atrybuty kolejki - _i_f i _o_f. _i_f - czyli
  input filter - to wanie to czego potrzebujemy.

  Jeli napiszemy krtki skrypt o nazwie "filter", ktry doda przed
  kocem linii znak CR (cariage return - powrt karetki), to efekt
  schodw moe by wyeliminowany. Tak wic musimy doda do naszej
  pozycji w /etc/printcap jeszcze jedn lini informujc o istniejcym
  filtrze:

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

  Przykadem prostego skryptu moe by:

  #!perl
  # Powysza linia tak na prawd powinna zawiera pen ciek do perl-a
  # Skrypt ten musi by wykonywalny: chmod 755 filter
  while(<STDIN>){chop $_; print "$_\r\n";};
  # Moesz te zakoczy znacznikiem "form feed": print "\f";

  Jeli zrobimy powysze, to otrzymamy drukark, na ktr bdziemy mogli
  wysya pliki tekstowe z Unix-a i otrzymamy sensowny wydruk. (Tak, s
  4 miliony lepszych sposobw na napisanie tego skryptu, ale tylko kilka
  jest tak bardzo ilustracyjnych. Ty masz to napisa bardziej wydajnie.)

  Jedynym problemem jest to, e drukowanie plikw tekstowych nie jest
  takie znowu fajne - byoby o wiele lepiej, jeli moglibysmy drukowa
  pliki PostScriptowe czy graficzne. No... tak, byoby i jest to atwe
  do zrobienia. Metoda jest rozszerzeniem tego co zrobilimy, eby si
  pozby schodkw. Jeli napiszesz program, ktry moe przyjmowa rne
  formaty i tumaczy je na jzyk zrozumiay dla drukarki, to masz
  naprawd dobry filtr.

  Taki filtr nazywany jest filtrem magicznym. Nie mcz si nad pisaniem
  wasnego - o ile nie drukujesz jakichs cudw - na sieci jest ju peno
  filtrw, ktre moesz miao uywa.

  77..22..  PPrraawwaa ddoossttppuu ddoo pplliikkww..

  Poniewa otrzymaem wiele prb, zaczam list plikw wraz z prawami
  dostpu jakie maj one w moim systemie. Jest wiele lepszych sposobw
  na zrobienie tego - idealnym sposobem jest uywanie programw tylko z
  atrybutami SGID, a nie robienie wszystkiego SUID dla "root-a", ale mj
  system tak ju mia i dla mnie to dziaa.

  -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
  uywa on numerw portw zastrzeonych dla systemu (poniej 1024). Po
  tym jak ju si podczepi pod ten port powinien si zmieni na lp.lp,
  ale raczej tego nie robi...

  88..  ZZddoobbyywwaanniiee oopprrooggrraammoowwaanniiaa ddoo ddrruukkoowwaanniiaa..

  Wiele napisanych pakietw filtrujcych (i innych programw zwizanych
  z drukowaniem) dostpnych jest na SunSite    Polska
  <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/printing/>.  Mona tam
  znale takie programy jak: psutils, a2ps, mpage, dvitodvi, flpr.

  88..11..  MMaaggiiccffiilltteerr..

  "Magic filter" jest jednym z najlepszych pakietw filtrujcych;
  zaprojektowany jest do instalacji w 10 minut. Powiedziano mi te, e
  zawiera specjaln obsug 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 <hpa@zytor.com>
  Primary-site:   sunsite.unc.edu
                  53000 /pub/Linux/system/printing/magicfilter-1.1b.tar.gz
  Copying-policy: GPL

  88..22..  FFiillttrr AAPPSS..

  Innym z wielu magicznych filtrw jest APS zrobiony przez Andreasa
  Klemma. Linux Software Map wyglda 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
  tumaczy z wielu popularnych typw plikw na polecenia twojej
  drukarki.. Rozumie np. tekst, PostScript, dvi, gif i inne.

  88..33..  EEZZ--MMaaggiicc..

  EZ-Magic to kolejny pakiet filtrujcy, 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:         toby@eskimo.com (Toby Reed)
  Maintained-by:  toby@eskimo.com (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.

  99..  RRoozzwwiizzaanniiaa sspprrzzeeddaawwccww..

  [ Sekcja ta, jest z definicji niekompletna. Przysyaj szczegy twojej
  ulubionej dystrybucji. ]

  99..11..  RReeddHHaatt..

  W RedHacie znajduje si graficzne narzdzie do admiistracji, przy
  pomocy ktrego mona dodawa drukarki odlege oraz lokalne. Pozwala
  ono na wybr drukarki z obsug "ghostscript" oraz pliku urzdzenia,
  do ktrego kierowany jest wydruk; potem dana drukarka instalowana jest
  w /etc/printcap. Nastpnie tworzony jest krtki filtr magiczny
  PostScript-ASCII na podstawie _g_s i _n_e_n_s_c_r_i_p_t.  Rozwizanie to dziaa
  cakiem dobrze i jest atwe do ustawienia dla popularnych przypadkw.

  99..22..  IInnnnee ddyyssttrryybbuuccjjee..

  Prosz o informacje jakie s rozwizania w innych dystrybucjach.

  1100..  GGhhoossttssccrriipptt..

  Ghostscript <http://www.cs.wisc.edu/~ghost/> jest najbardziej
  znaczcym programem do drukowania dla Linux-a.  Wikszo
  oprogramowania do drukowania pod Unix-a generuje PostScript, ktry
  jest opcj dla drukarki wart ok. $100. Jednak ghostscript jest za
  darmo i wygeneruje jzyk dla twojej drukarki z PostScriptu. Jeli jest
  on podczepiony pod filtr wejciowy dla lpd, to daje wirtualn drukark
  PostScriptow i bardzo uatwia ycie.

  Ghostscript jest dostpny w dwch postaciach. Komercyjna wersja
  Ghostscript-u pod nazw Alladin Ghostscript moe by uywana dla celw
  osobistych, ale nie moe by rozprowadzana w komercyjnych
  dystrybucjach Linux-a. Jest on z reguy o jaki rok do przodu wzgldem
  darmowej wersji; w tym momencie na przykad, obsuguje 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 uyczon dla GNU. (Cze i chwaa dla Aladdina za to; wicej
  sprzedawcw oprogramowania powinna wspomaga darmowe oprogramowanie w
  ten sposb)

  Cokolwiek robisz w _g_s, upewnij si, e uruchomie go z opcj
  wyczajc dostp do plikw (-dSAFER). PostScript jest jzykiem w
  peni funkcjonalnym i zy program w PostScripcie mgby ci przyprawi
  o bl gowy.

  Mwic o PDF-ie (Adobe's Portable Document Format), waciwie jest to
  troch bardziej zorganizowany PostScript w skompresowanym pliku.
  Ghostscript umie obsuy PDF tak samo jak PostScript, wic moesz by
  pierwszym w swoim otoczeniu z drukark umiejc wydrukowa PDF.

  1100..11..  WWyywwooyywwaanniiee GGhhoossssccrriipptt--uu..

  Zwykle ghostscript jest uruchamiany przez filtr, ktry zaoye, ale
  w celach ledzenia bd dobrze jest go uruchamia rcznie.

  gs -help pokae krtk list opcji i dotpnych sterownikw (lista ta
  pokazuje tylko sterowniki wkompilowane, a nie wszystkie dostpne
  sterowniki).

  Moesz uruchomi gs w celach testowych np. tak:

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

  1100..22..  DDoossttrraajjaanniiee wwyynniikkww ww GGhhoossttssccrriippcciiee..

  Jest wiele rzeczy, ktre mona zrobi jeli wynik powstay przy
  opracowywaniu tekstu nie jest zadowalajcy (waciwie, to moesz
  zrobi co ci si tylko zamarzy, jeli masz rda).

  1100..22..11..  UUmmiieejjssccoowwiieenniiee ii rroozzmmiiaarr wwyynniikkuu..

  Umiejscowienie, rozmiar i wspolczynik ksztaltu obrazu na stronie jest
  kontrolowane przez specyficzny dla danej drukarki sterownik w
  ghostscripcie. Jeli na przykad zauwaysz, e strony wychodz za
  krtkie, albo za dugie, albo za due o dwa razy, moesz zajrze do
  rde twojego sterownika i dopasowa jakiekolwiek parametry, ktre ci
  nie pasuj. Niestety, kady sterownik jest inny, tak wic nie mog ci
  powiedzie co tak na prawd trzeba zmieni, ale wikszo z nich jest
  dobrze skomentowana.

  1100..22..22..  GGaammmmaa,, rroozzmmiiaarr ppiikksseellii iittpp..

  Wikszo nielaserowych drukarek ma t wad, e rozmiar ich punktu
  jest raczej duy. Rezultatem tego s zbyt ciemne obrazy. Jeli masz
  ten problem, to powiniene uy swojej wasnej funkcji do transferu.
  Po prostu stwrz nastpujcy plik w katalogu bibliotecznym
  ghostscripta i dodaj jego nazw do wywoania _g_s zaraz przed waciwym
  plikiem. Moe bdziesz musia zmieni wartoci, eby pasoway do
  twojej drukarki. Mniejsze wartoci daj janiejszy obraz. Mniejsze
  wartoci (0.2 - 0.15) s dobrym pomysem, szczeglnie jeli twj
  sterownik uywa algorytmu Floyda-Steinberga do rasteryzacji kolorw.

  ---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 wartoci moliwe jest te naprawienie drukarki,
  ktra ma jak wad zwizan z kolorami. Jeli bdziesz robi co
  takiego, to radz uy pliku _c_o_l_o_r_c_i_r_._p_s, ktry dostarczany jest wraz
  z ghostscriptem (w podkatalogu examples) jako przykadowa strona.

  1111..  JJaakk ddrruukkoowwaa ppoopprrzzeezz ssiiee..

  Jedn z zalet _l_p_d jest to, e mona przy jego pomocy drukowa na
  drukarkach przyczonych fizycznie do innych komputerw. Jeli dobrze
  dobierzesz kombinacj skryptw i narzdzi, to moesz drukowa przy
  pomocy _l_p_r na wszelkiego rodzaju sieciach.

  1111..11..  NNaa hhoocciiee uunniixx//llppdd..

  Aby pozwoli odlegym maszynom drukowa na twojej drukarce, musisz je
  umieci w /etc/hosts.equiv lub /etc/hosts.lpd. (Zauwa, e
  hosts.equiv ma kilka innych efektw; upewnij si, e wiesz co robisz
  jeli umieszczasz tam jak maszyn). Uywajc opcji _r_s moesz
  pozwoli tylko wybranym uytkownikom na drukowanie; informacje na ten
  temat znajdziesz na stronie podrcznika systemowego na temat _l_p_d.

  1111..11..11..  PPrrzzyy ppoommooccyy llppdd..

  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.odlega.maszyna.pl:\
          :rp=nazwa_drukarki:\
          :lp=/dev/null:\
          :sh:

  Zauwa, e lokalnie nadal znajduje si katalog zada obsugiwany przez
  _l_p_d. Jeli odlega maszyna jest zajt albo wyczona, to zadania do
  drukowania czekaj lokalnie a bd mogy zosta wysane.

  1111..11..22..  PPrrzzyy ppoommooccyy rrllpprr..

  eby omin konfigurowanie lokalnego lpd, moesz uy _r_l_p_r, aby wysa
  co bezporednio do kolejki na odlegej maszynie. Jest to bardzo
  uyteczne jeli drukujesz na rnych drukarkach tylko okazyjnie. Z
  ogoszenia o _r_l_p_r:

  Rlpr uywa protokou TCP/IP, aby wysa zadania do drukowania do
  serwera lpd gdziekolwiek w sieci.

  W przeciwiestwie do lpr, ten *nie* wymaga, eby drukarki, na ktrych
  chcesz drukowa byy znane dla lokalnej maszyny (np. w /etc/printcap)
  i przez to jest bardziej elastyczny i wymaga mniejszego nakadu pracy
  administratora.

  rlpr moe zosta uyty gdziekolwiek, gdzie mgby zosta uyty zwyky
  lpr, i jest kompatybilny w d z tradycyjnym lpr z BSD.

  Najwaniejsz zalet _r_l_p_r jest, to e mona drukowa *skdkolwiek
  dokdkolwiek*, niezalenie od tego jak jest skonfigurowany system, z
  ktrego chcesz drukowa. Moe te by uyty jako serwer, tak e
  klienci uruchomieni na innych maszynach jak np.: netscape, xemacs,
  itp. mog drukowa na twojej drukarce maym nakadem wysiku.

  Rlpr dostpny jest na SUNSite Polska
  <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/printing/>.
  1111..22..  NNaa WWiinn9955,, WWiinnNNTT,, LLaannMMaannaaggeerr lluubb SSaammbbiiee..

  Jest dostpne mini-HOWTO "Printing to Windows", ktre zawiera wicej
  inormacji ni ta sekcja.

  Moliwe 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. Krtko mwic
  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 wyglda tak:

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

  Aby uzyska wicej informacji na temat konfigurowania takich
  przypadkw przeczytaj dokumentacj zawart w skrypcie _s_m_b_p_r_i_n_t.

  Moesz take uy _s_m_b_c_l_i_e_n_t, aby wysa zadanie drukowania
  bezporednio do serwisu drukowania SMB bez wczania w to lpd. Zobacz
  informacje w podrczniku systemowym.

  1111..33..  NNaa ddrruukkaarrccee NNeettWWaarree..

  Pakiet ncpfs zawiera narzdzie zwane _n_p_r_i_n_t, ktre udostpnia te same
  funkcje co _s_m_b_p_r_i_n_t, ale dla NetWare. Pakiet ten mona 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 moesz montowa wolumeny z serwera
       netware pod Linux-em. Moesz take drukowa na drukarkach
       podczonych pod netware oraz kolejkowa zadania z netware
       dla drukarek podczonych do Linux-a. Potrzebujesz jdra w
       wersji 1.2.x lub 1.3.54 i nowsze.  ncpfs nie bdzie dziaa
       z jdrem w wersji 1.3 poniej 1.3.54.

  Aby _n_p_r_i_n_t dziaa poprzez lpd, musisz napisa may 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" moe wyglda tak:

  #! /bin/sh
  # Powiniene najpierw sprawdzi konto guest bez hasa!
  /usr/local/bin/nprint -S sie -U nazwa -P haso -q nazwa-kolejki -

  1111..44..  NNaa ddrruukkaarrccee EEtthheerrTTaallkk ((AAppppllee))..

  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 dziaa z kart SMC Etherpower PCI z chip-em DEC tulip.

  1111..55..  NNaa ddrruukkaarrccee HHPP ii iinnnnyycchh eetthheerrnneettoowwyycchh ddrruukkaarrkkaacchh..

  Drukarki HP i niektre inne maj ethernetowy interfejs, do ktrego
  moesz drukowa bezporednio uywajc lpd. Powiniene postpowa
  zgodnie z instrukcj, ktr dostae do drukarki albo jej sterownika,
  ale oglnie takie drukarki "maj uruchomionego" lpd i dostarczaj
  jedn lub wicej kolejek, do ktrych moesz drukowa. HP moe 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 obsuguj generalnie
  dwie wbudowane kolejki - "surow" (raw), ktra akceptuje PCL (i
  moliwe, e PostScript) oraz "tekstow", ktra akceptuje zwyke ASCII
  i radzi sobie od razu z "efektem schodkw".

  W rodowisku wielkoskalowym, szczeglnie w duych rodowiskach, gdzie
  niektre drukarki nie obsuguj PostScript-u, moe by poyteczne
  ustawienie specjalnego serwera drukowania, do ktrego drukuj
  wszystkie maszyny i na ktrym uruchamiane s wszystkie zadania
  ghostscript-a.

  Pozwala to twojemu Linux-owi dziaa jako serwer wydrukw dla
  drukarki, i utykownicy mog robi swoje wydruki szybko i zajmowa si
  swoimi rzeczami zamiast czeka a drukarka skoczy drukowa prac
  kogo innego.

  Aby to zrobi, ustaw na swoim Linux-ie kolejk, ktra wskazuje na HP
  LJ wyposaon w ethernet. Teraz ustaw kolejk u wszystkich swoich
  klientw na tego Linux-a.

  Niektre drukarki sieciowe HP wyranie nie akceptuj ustawie strony
  tytuowej (banner page) wysanej przez klienta; mona wyczy ich
  wewntrznie generowan tak stron przez poczenie si z drukark
  telnet-em, wcinicie dwa razy <<ENTER>>, wpisanie "banner: 0" i
  nastpnie "quit". S inne ustawienia, ktre moesz take w taki sposb
  zmieni - wpisz "?", eby wywietli ich list.

  1111..55..11..  NNaa ssttaarrsszzyycchh ddrruukkaarrkkaacchh HHPP..

  Niektre drukarki (oraz "czarne pudeka" z sieciowym drukowaniem)
  obsuguj tylko prociutkie nie-protokoowane czyste poczenia TCP.
  Zauwaalne w tej kategorii s wczesne modele kart JetDirect (waczajc
  niektre JetDirectEx). Oglnie, aby drukowa na takiej drukarce,
  musisz otworzy poczenie TCP na danym porcie (z reguy 9100) i
  umieci tam swoje zadanie do wydrukowania. Mona 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;
  }

  1111..66..  UUrruucchhaammiiaanniiee _i_f dla odlegych drukarek.

  Jedn wad _l_p_d jest to, e _i_f nie s uruchamiane dla drukarek
  odlegych. Jeli okae si, e potrzebujesz _i_f, moesz ustawi
  podwjn kolejk i ponownie zkolejkowa dany wydruk. We ten _p_r_i_n_t_c_a_p
  jako przykad:

  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 dziaa tylko wtedy jeli lpr jest uruchomiony jako
  demon i ustawia ona poprawnie zleceniodawc kolejki w ponownie
  zainicjowanej kolejce. Powiniene raczej uy bardziej pewnej metody
  na zdobycie identyfikatora uytkownika, poniewa niezawsze jest to
  argument 5. Zobacz w podrcznik systemowym na temat _p_r_i_n_t_c_a_p.

  1111..77..  ZZ WWiinnddoowwss..

  Drukowanie z Windows (czy OS/2) na Linux-ie jest obsugiwane poprzez
  SMB w pakiecie SAMBA, ktry take umoliwia wspdzielenie plikw dla
  Windows.

  Samba zawiera cakiem pokan dokumentacj. Moesz 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 filtrw. Poleganie na
  tych sterownikach moe czasami dawa lepsze efekty, ale jest to
  uciliwe ze strony administratora jeli jest duo komputerw z
  Windows. Wic sprbuj najpierw PostScript-u.

  1111..88..  ZZ AAppppllee..

  Netatalk obsuguje drukowanie z Apple poprzez EtherTalk.  Na stronie
  Netatalk HOWTO <http://thehamptons.com/anders/netatalk/> znajdziesz
  wicej informacji.

  1111..99..  ZZ NNeettwwaarree..

  Jest jaka obsuga drukowania z Netware przez Linux-a oferowana przez
  czy z powodu Calder-y, ale nie mam pojcia czy Linux moe oferowa
  drukarki dla klientw Netware.

  1122..  JJaakk ddrruukkoowwaa nnaa ffaaxx--iiee..

  1122..11..  UUyywwaanniiee ffaaxxmmooddeemmuu..

  Jest wiele programw, ktre pozwol ci na odbieranie i wysyanie
  faxw. Jednym z bardziej zoonych jest program Sama Lefflera pod
  nazw _H_y_l_a_F_a_x. Jest on dostpny na ftp.sgi.com. Obsuguje on wiele
  rzeczy od wikszej iloci modemw do rozgaszania (broadcasting).

  Dostpny jest take _e_f_a_x, prosty program wysyajcy fax-y - jest on
  lepszym wyborem dla Linux-owcw. Program _m_g_e_t_t_y moe odbiera faxy (a
  nawet wysya poczt gosow na niektrych modemach!).

  1122..22..  UUyywwaanniiee ZZddaallnneeggoo SSeerrwwiissuu DDrruukkoowwaanniiaa..

  Dostpny jest eksperymentalny serwis, ktry pozwala ci na wysanie
  poczty elektronicznej z doczonym fragmentem, ktry ma by
  wydrukowany na faxie gdzie indziej. Obsugiwane s takie formaty jak
  PostScript, tak wic pomimo, i nie obejmuje swym zasigiem
  wszystkiego, moe by on bardzo przydatnym serwisem. Wicej informacji
  na temat drukowania poprzez Zdalny Serwis Drukowania znajdziesz na
  stronie o zdalnym    drukowaniu <http://www.tpc.int/>.

  1133..  JJaakk wwyyggeenneerroowwaa ccoo wwaarrtteeggoo ddrruukkoowwaanniiaa..

  Tutaj wchodzimy w prawdziw sie oprogramowania. Oglnie, Linux moe
  uruchamia cztery typy binariw z rnym sukcesem: Linux, iBCS,
  Win16/Win32s (za pomoc dosemu i kiedy Wine) oraz Mac/68k (przy
  pomocy  Executora). Ja omwi tylko czysto-Linux-owe i popularne Unix-
  owe oprogramowanie, poza tym WordPerfect dla SCO i przypuszczalnie
  inne komercyjne procesory tekstu take dobrze dziaaj na Linux-owej
  emulacji iBCS.

  Dla Linux-a wybr jest przewanie ograniczony do oprogramowania
  dostpnego oglnie dla Unix-a.

  1133..11..  JJzzyykkii ""MMaarrkkuupp""..

  Wikszo jzykw "markup" jest bardziej elastyczna dla wikszych albo
  powtarzalnych projektw, gdzie chcesz, aby komputer kontrolowa wygld
  rezultatu/wydruku, aby utworzy oglny wzr. Prba zrobienia jakiego
  adnego znaczka  w jzyku "markup" przypuszczalnie by "bolaa"...

     nnrrooffff
        To by jeden z pierwszych jzykw "markup" dla Unix-a. Strony z
        podrcznika systemowego s najpopularniejszym przykadem tekstw
        sformatowanych przy pomocy makr *roff-a. Wiele ludzi przeklina
        ten jzyk, ale nroff ma, przynajmniej dla mnie, bardziej zoon
        skadni ni to jest konieczne i przypuszczalnie jest zym
        wyborem dla nowych prac. Jednak warto jest wiedzie, e moesz
        zamieni napisan w groff-ie stron bezporednio na PostScript.
        Wikszo polece "man" zrobi to za ciebie np. _m_a_n _-_t _c_o__| _l_p_r.

     TTeeXX
        oraz jzyk makr - LaTeX, s jednym z najczciej uywanych
        jzykw "markup" na Unix-ie. Techniczne prace s czsto napisane
        w LaTeX-u poniewa bardzo upraszcza okrelenie wygldu tekstu i
        jest wwccii jednym z niewielu systemw obrbki tekstu, ktry
        obsuguje zapisy matematyczne dokadnie i dobrze na raz.
        Formatem wyjciowym TeX-a jest _d_v_i (DeVice Independent - czyli
        niezaleny od urzdzenia [przyp. tum.]) i mona 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. tum.].

     _S_G_M_L
        Dostpny jest przynajmniej jeden program do obrbki tego jzyka
        na Unix-a; formuuje on podstawy systemu dokumentw Linuxdoc-
        SGML. Moe on take obsugiwa inne DTD.

     _H_T_M_L
        Kto zasugerowa, e dla prostych projektw, wystarczy napisanie
        w HTML-u i drukowa przy pomocy Netscape-a. Ja si z tym jednak
        nie zgadzam.

  1133..22..  WWYYSSIIWWYYGG..

  [ Jest to skrt od What You See Is What You Get - czyli to co widzisz
  to dostaniesz, a oznacza, i wydrukowane zostanie DOKADNIE to co jest
  widoczne na ekranie i DOKADNIE w taki sam sposb - przyp. tum.]

  W tej chwili jest niedobr oprogramownia do obrbki tekstu WYSIWYG.
  Nie bj si napisa jakiego i daj mi zna jeli ominem co tutaj.

     _L_y_X
        Jest to zakoczenie dla LaTeX-a, ktre wyglda bardzo
        obiecujco. Odwied stron domow LyX-a <http://www-
        pu.informatik.uni-tuebingen.de/users/ettrich/> jeli chcesz
        wicej 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 wikszoci cech
        podstawowego procesora tekstu, moliwociami HTML oraz pen
        obsug 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 zawierajce
        zwyke aplikacje biurowe jak edytor w stylu WYSIWYG i arkusz
        kalkulacyjny. Powiedziabym, e robi dobr robot, ale nigdy
        nie uywaem takich pakietw. Sdze, e Caldera dostarcza take
        WABI firmy Sun, tak wic mgby przypuszczalnie uruchomi jaki
        MS Office pod tym jeli musiaby zintegrowa si z plikami
        innych.

        Jeff Phillips _<_j_e_f_f_@_I___R_A_T_U_S_._o_r_g_> uywa WordPerfect-a dla Linux-a
        z Caldery (w Slackware rnego rodzaju) i twierdzi, e dziaa mu
        to dobrze. Wyglda na to, e zawiera on wbudowan obsug
        drukarek, jak to mona 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 mona
        znale pod adresem www.redhat.com.

        Inni sprzedawcy niech mi dadz zna jakie maj oferty.

  1144..  PPooddgglldd pprrzzeedd wwyyddrruukkiieemm..

  Prawie wszystko co moesz wydrukowa, moesz te zobaczy na ekranie.

  1144..11..  PPoossttSSccrriipptt..

  Ghostscript posiada sterownik do X11; najlepiej jeli jest on uyty
  pod kontrol podgldarki PostScript o nazwie _G_h_o_s_t_v_i_e_w.  Najnowsza
  wersja tego programu powinna by take w stanie wywietli pliki PDF.

  1144..22..  TTeeXX ddvvii..

  Niezalene od urzdzenia (DeVice Independant) pliki TeX-a mog by
  wywietlane w X11 uywajc _x_d_v_i. Nowsze wersje _x_d_v_i wywouj
  ghostscript, aby wykona polecenia typowo PostScriptowe.

  Jest take sterownik na VT100. Nazywa si _d_g_v_t. _T_m_v_i_e_w dziaa z Linux-
  em i svgalib jeli to wszystko na co ci sta.

  1155..  DDrruukkaarrkkii sszzeerreeggoowwee ppoodd llppdd..

  1155..11..  UUssttaawwiiaanniiee ww pprriinnttccaapp--iiee..

  Lpd udostepnia pi atrybutw, ktre moesz ustawi w pliku
  /etc/printcap, aby kontrolowa wszystkie ustawienia portu szeregowego,
  do ktrego doczona jest drukarka. Przeczytaj stron podrcznika
  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 zapamitaj
  znaczenia: _b_r_#, _f_c_#, _x_c_#, _f_s_# i _x_s_#. Ostatnie cztery z tych atrybutw
  to mapy bitowe oznaczajce ustawienia portu. Atrybut _b_r_# jest
  prdkoci: np. _b_r_#_9_6_0_0.

  Tumaczenie z postaci _s_t_t_y na _p_r_i_n_t_c_a_p jest bardzo proste. Jeli
  musisz, to zobacz stron podrcznika systemowego na temat _s_t_t_y.

  Uyj _s_t_t_y, aby ustawi port drukarki, tak eby mg wysa plik do
  tego portu (poleceniem _c_a_t) i otrzyma poprawny wydruk. Oto co
  wywietla 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 midzy tym, i stanem w jakim port jest inicjowany
  podczas startu s -clocal, -crtscts i ixon. Twj port moe mie inne
  ustawienia w zalenoci od tego jak twoja drukarka kontroluje przepyw
  (flow control).

  _s_t_t_y uywa si waciwie w dziwny sposb. Poniewa polecenie _s_t_t_y
  operuje na terminalu podczonym do jego standardowego wejcia, ty
  uywasz je, aby manipulowa danym portem szeregowym przez uycie znaku
  < jak powyej.

  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) dziaa, zajrzyj do pliku
  /usr/src/linux/include/linux/termios.h. Zawiera on wiele #define
  (definicji) i kilka struktur - moesz go sobie wydrukowa (przecie
  drukarka dziaa, nie ?) i uywa jako pomocy. Id do sekcji, ktra
  zaczyna si tak:

  /* c_cflag bit meaning */
  #define CBAUD   0000017

  Sekcja ta zawiera znaczenia bitw _f_c_# i _f_s_#. Zauwaysz, e nazwy (po
  iloci bodw) s identyczne z tymi z polecenie _s_t_t_y. A nie mwiem, e
  to bdzie proste ?

  Zobacz, ktre z tych ustawie maj znak "-" na pocztku przy poleceniu
  _s_t_t_y. Zsumuj te wszystkie liczby (s one zapisane w systemie
  semkowym). To bd te bity, ktre bdziesz chcia wyzerowa, tak wic
  wynik jest tym, co masz wpisa do _f_c_#. Pamitaj oczywicie, e
  bdziesz ustawia bity zaraz po tym jak je wyzerujesz, tak wic moesz
  uy "_f_c_#_0_1_7_7_7_7_7" (ja tak robi).

  Teraz zrb to samo dla tych ustawie, ktre nie maj znaku "-" na
  pocztku w poleceniu _s_t_t_y. W moim przykadzie wane s CS8 (0000060),
  HUPCL (0002000) i CREAD (0000200). Zapamitaj te ustawienie dla
  swojej prdkoci (u mnie jest to 0000015). Zsumuj to wszystko - w moim
  przykadzie bdzie to 0002275. To bdzie to, co masz wpisa do _f_s_#.
  ("_f_s_#_0_2_2_7_5 dziaa u mnie.)

  Zrb to samo z ustawieniem i zerowaniem dla nastpnej sekcji pliku
  nagwkowego. "c_lflag bits". W moim przypadku nie musiaem niczego
  ustawia, tak wic uyem tylko "_x_c_#_0_1_5_7_7_7_7" i "_x_s_#_0".

  1155..22..  SSttaarrsszzee ddrruukkaarrkkii sszzeerreeggoowwee,, kkttrree gguubbii zznnaakkii..

  Jon Luckey pisze, e u niektrych starszych szeregowych drukarek z
  interfejsem za 10 centw i maym buforem, stop w kontroli przepywu
  oznacza rrzzeecczzyywwiissttee stop dla drukowania. Potem odkry, e eby
  naprawi t niedogodno wystarczy wyczy FIFO w ukadzie 16550
  poleceniem _s_e_t_s_e_r_i_a_l (eby to zrobi po prostu podajesz typ ukladu
  uart jako 8250).

  1166..  WWyyrraazzyy uuzznnaanniiaa..

  Informacje na temat _s_m_b_p_r_i_n_t zostay zaczerpnite z artykuu Marcela
  Roelofsa <marcel@paragon.nl>.

  Informacje na temat _n_p_r_i_n_t i uywania drukarek NetWare zostay
  dostarczone przez Michaela Smitha <mikes@bioch.ox.ac.uk>.

  Sekcja na temat drukarek szeregowych pod lpd zostaa napisana przez
  Andrew Teffta <teffta@engr.dnet.ge.com>.

  Te wszystkie gammy i inne takie dla "gs" zostay dostarczone przez
  Andreasa <quasi@hub-fue.franken.de>.

  Dwa paragrafy na temat 30 sekundowego "closing_wait" przy sterownikach
  szeregowych zostay dostarczone przez Chrisa Johnsona
  <cdj@netcom.com>.

  Robert Hart przysa kilka doskonaych paragrafw na temat ustawiania
  serwera drukarek dla poczonych HP, ktych ja uywam w niezmienionej
  wersji.

  I specjalne podzikowania dla tuzinw nad tuzinami tych, ktrzy
  wskazywali literwki, ze adresy i bdy w tym dokumencie przez lata.

  1166..11..  OOdd ttuummaacczzaa..

  Wersja ta jest wersj ostateczn. Dodany zosta odnonik do wanie
  powstaego tumaczenia dokumentu Printing-Usage-HOWTO.

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

  Jeli znalaze jakie race bdy ortograficzne, gramatyczne,
  skadniowe, techniczne (a moe ich tu troch by, bo nie znam si tak
  bardzo na poligrafii) to pisz do mnie:

  B.Maruszewski@jtz.org.pl

  Oficjaln stron tumacze HOWTO jest http://www.jtz.org.pl/

  Aktualne wersje przetumaczonych dokumentw znajduj si na teje
  stronie. Dostpne s take poprzez anonimowe ftp pod adresem
  ftp.jtz.org.pl w katalogu /JTZ.

  Przetumaczone przeze mnie dokumenty znajduj si take na mojej
  stronie WWW. <http://www.jtz.org.pl/bartek/tlumaczenie.html> S tam
  te odwoania do Polskiej Strony Tumaczeniowej.

  Kontakt z nasz grup, grup tumaczy moesz uzyska poprzez list
  dyskusyjn jtz@jtz.org.pl. Jeli chcesz sie na ni zapisa, to wylij
  list o treci subscribe jtz Imi Nazwisko na adres
  listproc@ippt.gov.pl

