Drukowanie w Linux-ie

Autor: Grant Taylor, gtaylor+pht@picante.com
v3.14, 23 Wrze�nia 1997
Wersja polska: Bartosz Maruszewski B.Maruszewski@jtz.org.pl
v1.3, 12 Lutego 1998


Jest to dokument zawieraj�cy informacje na takie tematy jak: generowanie 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.

1. Wprowadzenie.

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, b) podrzuci� mi informacj� co powinno tu by�, a nie ma tego.

Strona domowa tego HOWTO 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.

1.1 Historia

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.McCauley@bham.ac.uk>; przez kolejne dwa lata wsp�tworzyli�my PHT. Po jakim� czasie do��czyli�my prac� Karla Auera<Karl.Auer@anu.edu.au>. 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.

1.2 Prawa autorskie.

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. Jak drukowa�.

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 lpr. Dokument Printing-Usage-HOWTO 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!

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

3.1 Urz�dzenie lp.

J�dro Linux-a (<=2.1.32), zak�adaj�c, �e wkompilowa�e� lub za�adowa�e� urz�dzenie lp (polecenie cat /proc/devices powinno pokaza� urz�dzenie lp), dostarcza jedno lub wi�cej urz�dze� /dev/lp0, /dev/lp1 i /dev/lp2. Nie s� one kojarzone dynamicznie, ale s� one na sta�e przypisane konkretnym adresom I/O. Oznacza to, �e twoja pierwsza drukarka mo�e by� na lp0, albo lp1 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 plip oraz lp. Ale mo�na za�adowa� jeden albo drugi sterownik w ka�dej chwili; r�cznie albo przez kerneld 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� plip na jednym porcie, a lp 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 tunelp, przy pomocy kt�rego "root" mo�e ustawia� przerwania i inne opcje na urz�dzeniu lp.

Je�li urz�dzenie lp 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 insmod (albo w pliku /etc/conf.modules, �eby dzia�a�o tak�e dla kerneld). Parametry to: io=port0,port1,port2 i irq=irq0,irq1,irq2. Wi�cej informacji znajdziesz w podr�czniku systemowym man na stronie dotycz�cej insmod.

**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 (lp0) 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

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

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.

3.3 Urz�dzenia szeregowe.

Urz�dzenia szeregowe pod Linux-em zwykle nazywaj� si� /dev/ttyS1 lub podobnie. Narz�dzie stty pozwala na interaktywne przegl�danie lub okre�lanie ustawie� dla portu szeregowego; setserial 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 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 cat plik > /dev/ttyS2 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.

4. Obs�ugiwane drukarki.

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 nie 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 dzia�aj� 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 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�.

5. Jakie oprogramowanie do kolejkowania ?

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 lpsched. 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. Przysz�e wersje tego dokumentu b�d� zawiera�y informacje o zwyk�ym lpd oraz o LPRng.

6. Jak to dzia�a - podstawy.

�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:

lpd

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

lpr

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

lpq

Wy�wietla wydruki umieszczone w kolejce.

lpc

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

lprm

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 lpr, 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 ...

7. Jak poustawia� to wszystko - podstawy.

7.1 Tradycyjna konfiguracja lpd.

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 lp, dj i deskjet, 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 printcap.

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 - if i of. if - 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�.

7.2 Prawa dost�pu do plik�w.

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

8. Zdobywanie oprogramowania do drukowania.

Wiele napisanych pakiet�w filtruj�cych (i innych program�w zwi�zanych z drukowaniem) dost�pnych jest na SunSite Polska. Mo�na tam znale�� takie programy jak: psutils, a2ps, mpage, dvitodvi, flpr.

8.1 Magicfilter.

"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 <hpa@zytor.com>
Primary-site:   sunsite.unc.edu
                53000 /pub/Linux/system/printing/magicfilter-1.1b.tar.gz
Copying-policy: GPL

8.2 Filtr APS.

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 if 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.

8.3 EZ-Magic.

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:         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. Rozwi�zania sprzedawc�w.

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

9.1 RedHat.

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 gs i nenscript. Rozwi�zanie to dzia�a ca�kiem dobrze i jest �atwe do ustawienia dla popularnych przypadk�w.

9.2 Inne dystrybucje.

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

10. Ghostscript.

Ghostscript 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 gs, 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.

10.1 Wywo�ywanie Ghosscript-u.

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

10.2 Dostrajanie wynik�w w Ghostscripcie.

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).

Umiejscowienie i rozmiar wyniku.

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.

Gamma, rozmiar pikseli itp.

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 gs 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 colorcir.ps, kt�ry dostarczany jest wraz z ghostscriptem (w podkatalogu examples) jako przyk�adowa strona.

11. Jak drukowa� poprzez sie�.

Jedn� z zalet lpd 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 lpr na wszelkiego rodzaju sieciach.

11.1 Na ho�cie unix/lpd.

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 rs mo�esz pozwoli� tylko wybranym u�ytkownikom na drukowanie; informacje na ten temat znajdziesz na stronie podr�cznika systemowego na temat lpd.

Przy pomocy lpd.

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 lpd. 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.

Przy pomocy rlpr.

�eby omin�� konfigurowanie lokalnego lpd, mo�esz u�y� rlpr, 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 rlpr:

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� rlpr 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.

11.2 Na Win95, WinNT, LanManager lub Sambie.

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 smbclient (cz�� pakietu Samba) do serwisu drukowania Samby opartego na TCP/IP. Samba zawiera odpowiedni skrypt pod nazw� smbprint. Kr�tko m�wi�c umieszczasz plik konfiguracyjny dla konkretnej drukarki w katalogu zada� i instalujesz skrypt smbprint jako if.

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 smbprint.

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

11.3 Na drukarce NetWare.

Pakiet ncpfs zawiera narz�dzie zwane nprint, kt�re udost�pnia te same funkcje co smbprint, ale dla NetWare. Pakiet ten mo�na zdoby� z SunSITE Polska. 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 nprint dzia�a� poprzez lpd, musisz napisa� ma�y skrypt, aby drukowa� "stdin" na drukarkach NetWare i zainstalowa� go jako if 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 -

11.4 Na drukarce EtherTalk (Apple).

Pakiet netatalk zawiera co� podobnego do nprint i smbclient. Werner Eugster udokumentowa� procedur� dla drukowania do i z sieci Apple o wiele lepiej ni� ja kiedykolwiek; zobacz to w Netatalk-HOWTO.

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

11.5 Na drukarce HP i innych ethernetowych drukarkach.

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�.

Na starszych drukarkach HP.

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;
}

11.6 Uruchamianie if dla odleg�ych drukarek.

Jedn� wad� lpd jest to, �e if nie s� uruchamiane dla drukarek odleg�ych. Je�li oka�e si�, �e potrzebujesz if, mo�esz ustawi� podw�jn� kolejk� i ponownie zkolejkowa� dany wydruk. We� ten printcap 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 filter-lj-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 printcap.

11.7 Z Windows.

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.

11.8 Z Apple.

Netatalk obs�uguje drukowanie z Apple poprzez EtherTalk. Na stronie Netatalk HOWTO znajdziesz wi�cej informacji.

11.9 Z Netware.

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.

12. Jak drukowa� na fax-ie.

12.1 U�ywanie faxmodemu.

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� HylaFax. 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 efax, prosty program wysy�aj�cy fax-y - jest on lepszym wyborem dla Linux-owc�w. Program mgetty mo�e odbiera� faxy (a nawet wysy�a� poczt� g�osow� na niekt�rych modemach!).

12.2 U�ywanie Zdalnego Serwisu Drukowania.

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.

13. Jak wygenerowa� co� wartego drukowania.

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.

13.1 J�zyki "Markup".

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"...

nroff

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. man -t co�| lpr.

TeX

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 wci�� 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 dvi (DeVice Independent - czyli niezale�ny od urz�dzenia [przyp. t�um.]) i mo�na go zamieni� na PostScript lub Hewlett Packard PCL przy pomocy dvips lub dvilj. [TeX czyta si� "tech" - przyp. t�um.].

SGML

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.

HTML

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.

13.2 WYSIWYG.

[ 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.

LyX

Jest to zako�czenie dla LaTeX-a, kt�re wygl�da bardzo obiecuj�co. Odwied� stron� domow� LyX-a je�li chcesz wi�cej informacji.

Andrew User Interface System

AUIS zawiera ez - 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).

Oferty komercyjne

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 <jeff@I_RATUS.org> 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.

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

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

14. Podgl�d przed wydrukiem.

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

14.1 PostScript.

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

14.2 TeX dvi.

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

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

15. Drukarki szeregowe pod lpd.

15.1 Ustawianie w printcap-ie.

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 printcap i zapami�taj znaczenia: br#, fc#, xc#, fs# i xs#. Ostatnie cztery z tych atrybut�w to mapy bitowe oznaczaj�ce ustawienia portu. Atrybut br# jest pr�dko�ci�: np. br#9600.

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

U�yj stty, aby ustawi� port drukarki, tak �eby� m�g� wys�a� plik do tego portu (poleceniem cat) i otrzyma� poprawny wydruk. Oto co wy�wietla polecenie stty -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).

stty u�ywa si� w�a�ciwie w dziwny spos�b. Poniewa� polecenie stty 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 cat plik > /dev/ttyS2 (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 fc# i fs#. Zauwa�ysz, �e nazwy (po ilo�ci bod�w) s� identyczne z tymi z polecenie stty. A nie m�wi�em, �e to b�dzie proste ?

Zobacz, kt�re z tych ustawie� maj� znak "-" na pocz�tku przy poleceniu stty. 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 fc#. Pami�taj oczywi�cie, �e b�dziesz ustawia� bity zaraz po tym jak je wyzerujesz, tak wi�c mo�esz u�y� "fc#0177777" (ja tak robi�).

Teraz zr�b to samo dla tych ustawie�, kt�re nie maj� znaku "-" na pocz�tku w poleceniu stty. 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 fs#. ("fs#02275 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 "xc#0157777" i "xs#0".

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

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 rzeczywiste stop dla drukowania. Potem odkry�, �e �eby naprawi� t� niedogodno�� wystarczy wy��czy� FIFO w uk�adzie 16550 poleceniem setserial (�eby to zrobi� po prostu podajesz typ ukladu uart jako 8250).

16. Wyrazy uznania.

Informacje na temat smbprint zosta�y zaczerpni�te z artyku�u Marcela Roelofsa <marcel@paragon.nl>.

Informacje na temat nprint i u�ywania drukarek NetWare zosta�y dostarczone przez Michaela Smitha <mikes@bioch.ox.ac.uk>.

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

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

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

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.

16.1 Od t�umacza.

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:

B.Maruszewski@jtz.org.pl

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. S� tam te� odwo�ania do Polskiej Strony T�umaczeniowej.

Kontakt z nasz� grup�, grup� t�umaczy mo�esz uzyska� poprzez list� dyskusyjn� jtz@jtz.org.pl. Je�li chcesz sie na ni� zapisa�, to wy�lij list o tre�ci subscribe jtz Imi� Nazwisko na adres majordomo@ippt.gov.pl

# # # #

Hosting by: Hurra Communications Sp. z o.o.
Generated: 2007-01-26 18:02:22