Ondřej Medek

Tisk v UNIXu

LPR a LPRNG

Stručný obsah

  1. Architektura klient - server - tiskárna
  2. Zařízení
  3. Význam Postscriptu
  4. Tiskárny
  5. Práce serveru
  6. LPR
    1. Konfigurace
    2. Client
  7. LPRNG
  8. Web adresy
  9. Shrnutí

Client - server - tiskárna

Na prvním obrázku je obecná konfigurace pro tisk. Client pošle požadavek na tisk serveru, ten požadavek přijme a vytiskne poslaná data na tiskárně.

Obecná konfigurace
Obecná konfigurace

Na druhém obrázku je server implementován v tiskárně.

Síťová tiskárna
Síťová tiskárna

Na posledním obrázku je znázorněna situace, kterou budete pravděpodobně používat. Client i server běží na stejném počítači. V tomto případě nemusí být počítač zapojen do sítě.

Typický desktop
Typický desktop

Význam Postscriptu

Pro přenos dat mezi klientem a serverem se používá jednotný formát dat. V UNIXovém světě se nejvíce využívá jazyku tiskáren - Postscriptu. (Ale kdo chce, může data posílat v libovolném formátu.) Klient tak nemusí znát parametry tiskárny, stačí, když umí převádět svá data do Postscriptu. Podobně server zase nemusí znát všechny možné uživatelské formáty dat, stačí, když umí vytisknout Postscript.

Dalšími výhodami Postscriptu je otevřená specifikace a nezávislost na výstupním zařízení. A v neposlední řadě i existence open source interpretu, který se nazývá Ghostscript http://www.ghostscript.com/.

Tiskárny

Tiskárny můžeme z hlediska použitelnosti dělit na:

Pokud si nejste jisti, tak nejlepší informace naleznete na http://www.linuxprinting.org

Zařízení

V Linuxu lze na tiskárnu přistupovat přes tyto zařízení:

Práce serveru

Stručný popis, jak server pracuje.

  1. Požadavky od klienta si ukládá do fronty v adresáři /var/spool/lpd/jmeno_tiskarny
  2. Jestliže je tiskárna připravena a ve frontě čekají požadavky, tak
    1. vezme první požadavek z fronty
    2. spustí filtr, pokud je nějaký filtr definován
    3. pošle data na tiskárnu

LPR

Nejstarší a dosud požívanou implementací pro tisk je lpr. Lze o něm říci:

LPR konfigurace

Základním souborem popisujícím konfiguraci tiskových programů je /etc/printcap. Je v něm obsažena definice front. K jedné tiskárně může být více front (např. s různými filtry); ke každé tiskárně musí být aspoň jedna fronta. Tento soubor server (lpd) a dále ho používá i program lpc (správa front za běhu serveru).

Lze definovat i fronty pro tiskárny síťové, nebo virtuální (např. poslat soubor pryč přes Sambu nebo třeba e-mailem.

Základní informace lze nalézt v man 5 printcap.

printcap - ukázka

Každá fronta má definici na jedné řádce. Z estetických důvodů lze definici rozdělit na více řádků. Znak '\' na konci řádku znamená, že definice pokračuje na dalším řádku. V definici jednotlivé položku oddělují znaky ':'. První položka se skládá z jednoho nebo více jmen (oddělených '|') fronty. Ostatní položky mají tvar promenna=hodnota, nebo pouze promenna pro nastavení příznaku či promenna@ pro vynulování příznaku. Dafaultní tiskárna je tiskárna, která je první definovaná.

#Lokalni tiskarna
lp|ps|laserps|default :lp=/dev/lp0:mx=0:sh
#Lokalni tiskarna s filtrem
pcl|laserpcl :lp=/dev/lp0:mx=0:sh \
    :if=/usr/local/bin/ljet6mp
#Vzdalena tiskarna na IP 147.32.135.218
minolta:\
    lp=:rm=147.32.135.218:rp=lp:\
    mx=0:sh@
    

Druhá definice obsahuje i filtr /usr/local/bin/ljet6mp. Je to normální spustitelný soubor (i script).

LPR konfigurace - nástroje

Ke snadnější konfiguraci (vytváření /etc/printcap) lze použít řadu programů. Např.:

LPR klient

Tisk:

Klient posílá na server soubory pomocí programu lpr. Základní syntaxe příkazu vypadá lpr [-Pfronta] soubor ... . Např. poslání jednoho souboru se provede lpr soubor.ps, dva soubory na tiskárnu laserpcl se pošlou lpr -Plaserpcl soubor1.ps soubor2.ps.

Zjištění stavu:

Stav úloh ve frontě lze zjistit příkazem lpq [-Pfronta].

Mazání úloh:

Úlohy se z fronty smažou pomocí lprm [-Pfronta] cislo_ulohy|-, kde cislo_ulohy je číslo úlohy ve frontě. Lze ho zjistit pomocí příkazu lpq. Použije-li se místo čísla úlohy pomlčka, tak se smažou všechnu úlohy patřící uživateli, např. lprm -Plaserpcl -.

LPRNG

LPRNG je rozšířený LPR, především s důrazem na bezpečnost. Konfigurace obsahuje velmi (opravdu velmi) mnoho voleb, což může být matoucí. Ovšem stačí i syntaxe jako v LPR. Roste na http://lprng.org/

Web adresy

Shrnutí

Používejte CUPS.
LPR/LPRNG používejte jen, pokud víte, co děláte.
Ondřej Medek
Last modified: Sun Nov 2 21:33:15 CET 2003