archeolog.cz: Obří Hrad Keltské oppidum Stradonice Habrůvka, jeskyně Býčí skála pravěk datace, časová osa, pravěké dějiny
Apple iPad Smart Case šedá - Samsung Galaxy Tab 10.1 černé - Samsung Galaxy Tab 10.1 bíle - Puzdro Asus Eee Pad Versa černé - Pouzdro Apple iPad Smart Cover černé - Pouzdro POINT OF VIEW Mobii 7" černé - Pouzdro ZTE V9C-1 černé - Pouzdro Google Nexus 7 oražové - Pouzdro Google Nexus 7 šedé - Pouzdro Samsung Galaxy Note 10.1 bíle - Pouzdro Samsung Galaxy Note 10.1 černé
   Témata: Home

Výlety

Foto

Technika

Výhledy

Cestování

K zamyšlení


LINUX4ALL archiv

Na webu

Pobavení

Příroda

Report, Dokument

Sport

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.
STEFi (c) 2004 - stefi [at] netdev [dot] cz
Pokud chcete zde publikované materiály použít, prosím, informujte mě. If you wish to use these published materials, please, let me know.
0.004 sec