printing howto pl 7 G3RGZIJJTW6JFZEJV7KDVCEJWSR5M6RSF3F2ZZI


Drukowanie w Linux-ie: Jak poustawiać to wszystko - podstawy. Następna strona Poprzednia strona Spis treści 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... Następna strona Poprzednia strona Spis treści

Wyszukiwarka

Podobne podstrony:
printing howto pl 5
printing howto pl 4
printing howto pl 6
printing howto pl 12
printing howto pl 10
printing howto pl 8
printing howto pl 9
printing howto pl 14
printing howto pl 3
printing howto pl
printing howto pl 1
printing howto pl 15
printing howto pl 13
Printing HOWTO pl (2)
Printing HOWTO pl
printing howto pl 2
printing howto pl 16
printing howto pl 11
printing usage howto pl 5

więcej podobnych podstron