8.1 Kurz Linuxu - Soubor printcap
- STEFi - 2000-12-31 10:00:00
Tento serial o Linuxu byl vytvoren Milanem Cermakem v roce 2000 a s jeho svolenim zverejnen na strankach linux4all.misto.cz......
Soubor printcap
===============
Ať chceme nebo nechceme, někdy je potřeba někomu předvést náš textový
výtvor a buď onen člověk nemůže k obrazovce, nebo nemůže obrazovka k
němu. Pak nám nezbývá než nějakým způsobem procedit náš text skrz
tiskárnu na papír. Právě tím, jak dostat text na tiskárnu v Linuxu,
se budeme zabývat v dnešní lekci.
Aby se jednotliví uživatelé o tiskárnu nehádali, je mezi ně vložena
fronta (tzv. spooler), kde se dokumenty shromažďují a po jednom
posílají na tiskárnu. Přímý přístup k tiskárně má jen uživatel "root",
ale zneužívat jeho práv k vytištění souboru by mohlo být až nebezpečné.
Přímý přístup je vhodné využít maximálně k otestování konfigurace.
Na druhou stranu je to právě uživatel "root", který musí (nebo lépe by
měl, protože ostatní uživatelé nemohou) nakonfigurovat tiskárnu (a to
nejlépe tak, že správně).
Nastavení tiskárny je uloženo v souboru "/etc/printcap" a záznam v
tomto souboru vypadá asi takto:
ljet|lp|ps|PostScript|600dpi 20MB memory|local|LPT1|:
:lp=/dev/lp1:rw:
:sd=/var/spool/lpd/ljet4:mx#0:mc#0:pl#72:pw#85:
:lf=/var/log/lpd-errs:if=/usr/local/cap/ljet4:
Napoprvé to vypadá hrůzostrašně. Abychom se v tom trochu vyznali,
popíšeme si nyní formát tohoto záznamu.
Prvním pravidlem pro syntaxi tohoto souboru je, že každý řádek
definuje jednu tiskárnu. To může znít trochu divně, neboť náš příklad
je jediná definice a má čtyři řádky. Znak backslash "" zde totiž
znamená, že definice pokračuje na dalším řádku.
Jednotlivé položky se oddělují dvojtečkou ":".
Teď se pustíme do popisu jednotlivých položek.
První položkou záznamu je vždy jméno tiskárny. Těch může být i víc,
pak se oddělují svislou čarou "|". Implicitní tiskárnu můžete nastavit
tak, že jí dáte jméno "lp". Nedoporučuje se, aby to bylo první jméno v
seznamu.
Proměnná "lp" udává zařízení, ke kterému je tiskárna připojena. V
našem příkladu je to zařízení "/dev/lp1", které představuje druhý
paralelní port. (POZOR! Ten je na adrese 0x378, tedy LPT1.) Tato
proměnná musí být nastavena v každé definici.
"rw" znamená, že tiskárna (ale i port) umí komunikovat oběma směry.
Proměnná "sd" specifikuje adresář, kde se budou skladovat dokumenty
pro tuto tiskárnu. Měl by to být podobný adresář, jaký je uveden v
našem příkladu (tak hradu nebo hradě?). Nedoporučuje se, aby se
adresář jmenoval "/var/spool/lpd/lp", i když je tiskárna nastavena
jako implicitní.
Parametr "mx" udává maximální velikost úlohy. Nulová velikost znamená
bez omezení.
Proměnná "mc" nastavuje maximální počet kopií. A opět nulová hodnota
znamená bez omezení.
Proměnná "pl" specifikuje délku stránky v řádkách.
Proměnná "pw" nastavuje šířku stránky ve znacích.
Parametr "lf" udává soubor, do kterého se budou zapisovat chybová
hlášení (log-file).
A poslední proměnná "if" nastavuje tzv. vstupní filtr.
Možných parametrů je samozřejmě mnohem víc (v knize "Používáme Linux",
ze které to opisuji, zabírá jejich částečný výčet dvě stránky). Abych
to zbytečně neprotahoval, odkážu vás na manuálovou stránku souboru
"printcap", kde najdete úplný seznam parametrů.
Ještě bych se ale měl zmínit o filtrech. Filtr je vlastně program,
který má za úkol upravit dokument tak, aby jej tiskárna mohla
vytisknout.
Mějme například jehličkovou tiskárnu EPSON, která umí pracovat jen ve
dvou režimech - text nebo grafika. Tiskneme-li tedy holý text, můžeme
soubor odeslat rovnou na tiskárnu. Chceme-li ale vytisknout například
soubor PostScript (což je textový soubor s popisem stránky),
potřebujeme program, který tento soubor transformuje do grafických
příkazů naší tiskárny (pravděpodobně program "GhostScript"). Dalším
problematickým formátem pro naší tiskárnu bude formát "dvi" (což je
produkt systému TeX). Ten je nejprve třeba transformovat do formátu
PostScript, pak předchozím způsobem převést do příkazů tiskárny a
teprve pak se může tisknout.
Tento problém je možné vyřešit například uvedením tří tiskáren (které
budou vlastně tiskárna jedna), které se budou lišit jen použitým
filtrem a tedy formátem souboru, který jsou schopny spracovat.
Druhou možností je použití tzv. magických filtrů. To jsou programy,
které dokáží podle vstupních dat usoudit, jaký filtr je třeba. Takovým
filtrem je například program "nenscript". Nevýhodou tohoto filtru je,
že na formát souboru usuzuje jen podle prvních dvou znaků. Najde-li
tedy znaky "%!", použije filtr pro PostScript. Lze si ale celkem
jednoduše představit PostScriptový soubor, který začíná jinými znaky,
a nebo například textový soubor, který má jako první právě znaky "%!".
Naštěstí existuje magických filtrů více a většina z nich se nedá tak
snadno ošidit.
Příště si ukážeme, jak si nasavení ověřit, a podíváme se, kterými
příkazy se spravuje tisková fronta.