FreeBSD kézikönyv
Előző | Fejezet 9. Nyomtatás | Következő

# 9.5. A nyomtatók használata

Ebből a szakaszból megtudhatjuk, hogyan használjuk a FreeBSD-n beállított nyomtatónkat. Röviden most itt foglaljuk össze az ide tartozó felhasználói parancsokat:

lpr(1)

  Munkákat nyomtat ki.

lpq(1)

  Ellenőrzi a nyomtatási sorokat.

lprm(1)

  Munkákat vesz ki a nyomtatási sorokból.

Ezek mellett létezik még a nyomtatók és a hozzájuk tartozó sorok irányítására alkalmas parancs is, az lpc(8), amelyre a A nyomtatók vezérlése című szakaszban fogunk részleteiben kitérni.

A nyomtatók/sorok `/etc/printcap` állományban szereplő nevük szerinti megadásához az lpr(1), lprm(1) és lpq(1) parancsok közül mindegyik elfogadja a `-P `nyomtatónév`` paramétert. Ennek köszönhetően képesek vagyunk munkákat küldeni, eltávolítani vagy felügyelni az egyes nyomtatók soraiban. Ha nem használjuk a `-P` kapcsolót, akkor az érintett nyomtató a `PRINTER` környezeti változó által meghatározott lesz. Végül, ha a `PRINTER` nevű környezeti változót sem állítottuk be, akkor a parancsok alapértelmezett módon az `lp` nevű nyomtatót fogják használni.

A továbbiakban az alapértelmezett nyomtató kifejezés a `PRINTER` környezeti változó által megnevezett nyomtatóra fog utalni, illetve ha ezt nem definiáltuk, akkor az `lp` nevű nyomtatóra.

## 9.5.1. Munkák nyomtatása

Az állományok kinyomtatásához írjuk be:

    % lpr állománynév ...

Ezzel kinyomtatjuk az összes felsorolt állományt az alapértelmezett nyomtatón. Ha nem adunk meg állományokat, akkor az lpr(1) parancs a szabványos bemenetről várja a nyomtatandó adatokat. Például ezzel a paranccsal néhány igen fontos rendszerállományt tudunk kinyomtatni:

    % lpr /etc/host.conf /etc/hosts.equiv

A nyomtató megválasztásához így adjuk ki a parancsot:

    % lpr -P nyomtatónév állománynév ...

Ez a példa kinyomtatja az aktuális könyvtár részletes listáját a `rattan` nevű nyomtatón:

    % ls -l | lpr -P rattan

Mivel egyetlen állományt sem adtunk meg az lpr(1) programnak, az `lpr` parancs a nyomtatandó adatokat a szabványos bemenetről várja, ami jelen esetünkben a `ls `-l`` parancs kimenete.

Az lpr(1) ezeken felül még képes értelmezni rengeteg formázásra, konverzióra, másolatok készítésére stb. utasító kapcsolót is. Erről bővebben a Nyomtatási beállítások című szakaszban lesz szó.

## 9.5.2. Munkák felügyelete

Amikor az lpr(1) programmal nyomtatunk, az összes nyomtatandónk egy “nyomtatási munkának” nevezett csomagba kerül, ami pedig az LPD nyomtatási rendszerébe. Minden nyomtatóhoz tartozik egy nyomtatási sor, ahol részünkről és mások által eddig kiadott munkákat találhatjuk. A nyomtató ezután ezeket a munkákat érkezési sorrend szerint dolgozza fel.

Az alapértelmezett nyomtatóhoz tartozó sor állapotát az lpq(1) programmal tudjuk megnézni. Ha egy adott nyomtatóra vagyunk kíváncsiak, akkor használjuk a `-P` kapcsolót. Például a

    % lpq -P bamboo

parancs a `bamboo` nevű nyomtató sorát fogja megmutatni. Példaképpen lássuk is ilyen esetben az `lpq` parancs eredményét:

    bamboo is ready and printing
    Rank   Owner    Job  Files                              Total Size
    active kelly    9    /etc/host.conf, /etc/hosts.equiv   88 bytes
    2nd    kelly    10   (standard input)                   1635 bytes
    3rd    mary     11   ...                                78519 bytes

Itt három munkát láthatunk a `bamboo` nyomtatási sorában. Az első munka, amit a `kelly` nevű felhasználó küldött, a 9-es “munkaszámot” kapta. A nyomtatóhoz tartozó összes munka kap egy ilyen egyedi számot. Többnyire nyugodtan figyelmen kívül hagyhatjuk, azonban szükségünk lehet rá, ha éppen törölni kívánjuk a hozzátartozó munkát. Ezzel majd a Munkák eltávolítása című szakaszban foglalkozunk.

A kilences számú munka két állományt tartalmaz: ha a parancssorban több állományt adunk meg az lpr(1) programnak, akkor az egy munkának számít. Ez egyben a pillanatnyilag aktív munka (ezt a “Rank” oszlopban szereplő `active` érték jelzi), tehát a nyomtató éppen ezzel foglalatoskodik. A második munka közvetlenül az lpr(1) szabványos bemenetére érkezett. A harmadik a `mary` nevű felhasználótól jött, és ez egy nagyobbacska munka. A nyomtatandó állomány elérési útvonala túlságosan hosszú ahhoz, hogy ki lehessen írni, ezért az lpr(1) csak három pontot jelez ki helyette.

Az lpq(1) kimenetének első sorai is nagyon hasznos információt tartalmaz: megtudhatjuk, mit csinál éppen (legalább is az LPD szerint) a nyomtató.

A `-l` kapcsolóval az lpq(1) parancstól kérhetünk sokkal részletesebb listázást is. Például így nézhet ki a `lpq `-l`` parancs eredménye:

    waiting for bamboo to become ready (offline ?)
    kelly: 1st				 [job 009rose]
           /etc/host.conf                    73 bytes
           /etc/hosts.equiv                  15 bytes

    kelly: 2nd				 [job 010rose]
           (standard input)                  1635 bytes

    mary: 3rd                                [job 011rose]
          /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes

## 9.5.3. Munkák eltávolítása

Ha meggondoltuk volna magunkat egy munka kinyomtatásáról, az lprm(1) paranccsal még törölni tudjuk a sorból. Az lprm(1) gyakran még a nyomtatás alatt álló munkát is képes eltávolítani, azonban előfordulhat, hogy a munka egy része már nyomtatásra került.

Az alapértelmezett nyomtató sorából csak úgy tudunk munkákat törölni, ha először az lpq(1) segítségével megkeressük a számukat. Ha ez megvan, írjuk be:

    % lprm munkaszám

Adott nyomtatóról a `-P` kapcsoló segítségével tudunk munkákat törölni. A most következő parancs a `bamboo` nevű nyomtatóról törli a 10-es számú munkát:

    % lprm -P bamboo 10

Az lprm(1) parancs esetén még használhatóak az alábbi rövidítések is:

lprm -

  Eltávolítja a hozzánk tartozó az összes munkát (az alapértelmezett nyomtatón).

lprm `felhasználó`

  Eltávolítja az adott `felhasználó`hoz tartozó összes munkát (az alapértelmezett nyomtatón). Kizárólag a rendszergazdák képesek erre, a rendes felhasználók csak a saját munkáikat törölhetik.

lprm

  A munka száma, a felhasználói név vagy a `-`megadása nélkül az lprm(1) törli az alapértelmezett nyomtatón éppen aktív munkát, amennyiben az a miénk. Csak a rendszergazdák képesek bármilyen aktív munkát törölni.

Ha kiegészítjük az imént említett rövidítéséket a `-P` paraméter megadásával, akkor az alapértelmezett nyomtató helyett bármelyik másikat is használhatjuk. Például ez a parancs eltávolítja az aktuális felhasználó összes munkáját a `rattan` nevű nyomtatón:

    % lprm -P rattan -

> Megjegyzés: Hálózati környezetben az lprm(1) csak arról a gépről engedi törölni a munkákat, amelyről küldték ezeket, még abban az esetben is, amikor ugyanaz a nyomtató más számítógépekről is elérhető. A következő parancssorozat ezt igyekszik szemléltetni:

>     % lpr -P rattan myfile
>     % rlogin orchid
>     % lpq -P rattan
>     Rank   Owner	  Job  Files                          Total Size
>     active seeyan	  12	...                           49123 bytes
>     2nd    kelly      13   myfile                         12 bytes
>     % lprm -P rattan 13
>     rose: Permission denied
>     % logout
>     % lprm -P rattan 13
>     dfA013rose dequeued
>     cfA013rose dequeued

## 9.5.4. Túl a nyers szövegen: nyomtatási beállítások

Az lpr(1) parancs számos olyan beállítást enged, amelyekkel a szövegek formázását, grafikák átalakítását illetve más állományformátumok használatát, másolatok készítését, munkák irányítását és még sok minden mást el tudunk végezni. Ebben a szakaszban pontosan ezekről a kapcsolókról lesz szó.

### 9.5.4.1. Formázási és konverziós beállítások

Az lpr(1) most következő opciói a munkákban található állományok formázását vezérlik. Akkor használjuk ezeket a beállításokat, ha a munka nem tartalmaz nyers szöveget, vagy ha nyers szöveget akarunk formázni az pr(1) segédprogrammal.

Például az alábbi parancs kinyomtat egy ``halászati-jelentés.dvi`` nevű (a TeX betűszedű rendszerből már jól ismert) DVI állományt a `bamboo` nevű nyomtatón:

    % lpr -P bamboo -d halászati-jelentés.dvi

Ezek a beállítások a munkában szereplő minden egyes állományra vonatkoznak, ezért nem keverhetjük (például) a DVI és ditroff formátumú állományokat egy munkán belül. Ehelyett külön munkákban kell elküldenünk az eltérő formátumú állományokat, és mindegyik munkához külön konverziós beállításokat kell megadnunk.

> Megjegyzés: A `-p` és `-T` kapcsolók kivételével az itt felsorolt összes beállításnak a kiválasztott nyomtatóhoz szüksége van a megfelelő konverziós szűrőre. Például a `-d` opció használatához kell egy konverziós szűrő a DVI formátumhoz. A Konverziós szűrők című szakasz erről ad bővebb tájékoztatást.

`-c`

  Cifplot állományok nyomtatása.

`-d`

  DVI állományok nyomtatása.

`-f`

  FORTRAN forrás nyomtatása.

`-g`

  Plot formátumú adatok nyomtatása.

`-i `szám``

  A kinyomtatott szöveg behúzásának növelése a `szám` értékével. Ha nem adjuk meg a `számot`, akkor ennek értéke 8 lesz. Ez a beállítás csak bizonyos konverziós szűrőkkel működik.

  > Megjegyzés: Ne hagyjunk helyet az `-i` és a szám között.

`-l`

  A szöveg formázás nélküli nyomtatása, vezérlőkarakterekkel együtt.

`-n`

  Ditroff (eszközfüggetlen troff) adat nyomtatása.

-p

  Nyomtatás előtt a szöveg formázása a pr(1) programmal. Lásd pr(1).

`-T `cím``

  Az állomány neve helyett a fejlécben a `címet` jeleníti meg a pr(1). Ennek a beállításnak csak a `-p` opcióval együtt van hatása.

`-t`

  Troff adat nyomtatása.

`-v`

  Raszteres adatok nyomtatása.

Vegyünk az iméntiekre egy példát. A következő parancs az ls(1) szépen megformázott man oldalát nyomtatja ki az alapértelmezett nyomtatón:

    % zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t

A zcat(1) kitömöríti az ls(1) man oldalának forrását és átadja a troff(1) parancsnak, ami ebből létrehoz a GNU troff formátumának megfelelő kimenetet és továbbadja az lpr(1) parancsnak, ami végül elküldi a munkát az LPD nyomtatási rendszernek. Mivel az lpr(1) parancsnak megadtuk az `-t` kapcsolót, a nyomtatási rendszer a GNU troff formátumban érkező adatokat magától át fogja alakítani olyan formátumra, amit a nyomtató is képes lesz megérteni.

### 9.5.4.2. Munkák kezelése

Az lpr(1) most felsorolandó beállításaival az LPD rendszert arra tudjuk utasítani, hogy a munkát különleges módon kezelje:

-# `példányszám`

  Egyetlen példány helyett hozzon létre `példányszám` számú példányt a munkában található összes állományból. A rendszergazda a nyomtató kímélése érdekében ezt a lehetőséget letilthatja, amivel inkább a fénymásoló használatára ösztönzi a felhasználókat. Lásd A másolatok számának szabályozása szakasz.

  A beállítás illusztrálásaként most az alapértelmezett nyomtatón először nyomtassuk ki három példányt a ``parser.c``, majd ezután a ``parser.h`` állományokból:

      % lpr -#3 parser.c parser.h

-m

  A rendszer küldjön levelet a munka teljesítése után. Ekkor az LPD a munka elvégzése után levelet küld a helyi postafiókunkba. A levélben kifejti, hogy sikeres volt-e a nyomtatás, vagy esetleg valamilyen hiba keletkezett, és ha hiba történt, akkor pontosan mi is volt az.

-s

  Ne másolja közvetlenül az állományokat a nyomtatási könyvtárba, hanem készítsen hozzájuk szimbolikus linkeket.

  Egy nagyobb munka nyomtatása esetén javasolt használni ezt a kapcsolót. Ezzel a megoldással helyet tudunk spórolni a nyomtatási könyvtárban (amikor a munkánk könnyen megtelítheti a nyomtatási könyvtárat tároló állományrendszert). Emellett időt is takarítunk meg, mivel az LPD-nek nem kell a munka minden egyes bitjét átmásolni a nyomtatási könyvtárba.

  Van azonban egy hátránya: mivel az LPD ekkor közvetlenül az eredeti állományra fog hivatkozni, ezért a nyomtatás befejezéséig azt nem módosíthatjuk vagy törölhetjük.

  > Megjegyzés: Ha egy távoli nyomtatónak küldjük a munkát, akkor az LPD a helyi és a távoli számítógép között mégis kénytelen lesz átmásolni a munkát, így a `-s` kapcsoló egyedül csak a helyi nyomtatási könyvtárban fog helyet spórolni. Ettől eltekintve még ilyenkor is hasznunkra válhat.

-r

  Törölje a munkában szereplő állományokat, miután átmásolta ezeket a nyomtatási könyvtárba, vagy miután a `-s` kapcsoló használatával kinyomtatta ezeket. Nagy körültekintéssel használjuk!

### 9.5.4.3. A fejléclapok beállításai

Az lpr(1) most következő beállításai a munkák fejlécében megjelenő szövegekre vannak hatással. Így ha letiltottuk a fejléclapok használatát, akkor ezek a kapcsolók lényegében semmit sem állítanak. A Fejléclapok című szakaszból tudhatunk meg többet ezek beállításáról.

-C `szöveg`

  A fejléclapon megjelenő hálózati név helyett a `szöveg` fog szerepelni. A hálózati név általában annak a gépnek a neve, ahonnan a munkát küldték.

-J `szöveg`

  A fejléclapon megjelenő munka neve helyett a `szöveg` fog megjelenni. A munka neve általában a benne szereplő első állomány nevével egyezik meg, ha a szabványos bemenetről nyomtatunk, akkor egyszerűen csak `stdin`.

-h

  Ne nyomtasson fejléclapot.

  > Megjegyzés: Bizonyos helyeken előfordulhat, hogy ennek a kapcsolónak nincs semmilyen hatása a fejléclapok létrehozásának módszeréből fakadóan. A részleteket lásd a Fejléclapok szakaszban.

## 9.5.5. A nyomtatók vezérlése

A nyomtatóink rendszergazdájaként nekünk kell telepítenük, üzembe helyeznünk és kipróbálnunk ezeket. Az lpc(8) parancs használatával még jobban képesek vagyunk kapcsolatba lépni velük. Az lpc(8) paranccsal:

- el tudjuk indítani és le tudjuk állítani a nyomtatókat;

- be- és ki tudjuk kapcsolni a nyomtatási soraikat;

- át tudjuk rendezni az egyes sorokban található munkákat.

Először is essen pár a fogalmakról: ha a nyomtató leállt, akkor semmit sem fog kinyomtatni a sorából. A felhasználók továbbra is képesek munkákat küldeni, amik azonban egészen addig fognak várakozni, amíg a nyomtatót el nem indítjuk vagy a sorát ki nem ürítjük.

Ha egy sort kikapcsolunk, akkor (a `root` kivételével) egyetlen felhasználó sem képes munkákat küldeni a nyomtatónak. A bekapcsolt sorok képesek csak munkát fogadni. A nyomtató elindítható kikapcsolt sorral is, ilyenkor egészen addig folytatja a munkák kinyomtatását, amíg a sor ki nem ürül.

Általánosan elmondható, hogy az lpc(8) parancs használatához a `root` felhasználó jogosultságaira van szükségünk. Az lpc(8) parancsot minden más esetben csak a nyomtató állapotának ellenőrzésére vagy a megakadt nyomtató újraindítására használhatjuk.

Foglaljuk röviden össze az lpc(8) parancsait. A legtöbb parancs kiadásához még szükséges egy `nyomtatónév` paraméter megadása is, amivel megnevezzük az utasítani kívánt nyomtatót. Helyette használható az `all` szó is, amivel az `/etc/printcap` állományban szereplő összes nyomtatót egyszerre utasíthatjuk.

`abort `nyomtatónév``

  Az aktuális munka megszakítása és a nyomtató leállítása. Ha a nyomtatási sort még nem kapcsoltuk ki, a felhasználók küldhetnek további munkákat.

`clean `nyomtatónév``

  A nyomtató könyvtárából töröljük a régi állományokat. Esetenként adódhat, hogy bizonyos munkák állományait nem takarította el az LPD, különösen abban az esetben, amikor a nyomtatás vagy az adminisztrálás során keletkezett valamilyen hiba. Ez a parancs segít megtalálni a nyomtatási könyvtárból már kikopott állományokat és törli ezeket.

`disable `nyomtatónév``

  Az újonnan érkező munkák besorolásának kikapcsolása. Ha a nyomtató még működik, akkor folytatni fogja a sorban még bennmaradt munkák nyomtatását. A rendszergazda (a `root`) még a kikapcsolt sorok esetén is küldhet munkákat.

  Ez a parancs valójában akkor hasznos, ha egy új nyomtató vagy egy új szűrő működését próbálgatjuk: ilyenkor érdemes kikapcsolni a nyomtatási sort és `root` felhasználóként munkákat küldeni. A többi felhasználó a tesztelés befejezéséig nem tud majd munkákat küldeni, vagyis egészen addig, amíg a nyomtatási sort vissza nem kapcsoljuk az `enable` paranccsal.

`down `nyomtatónév` `üzenet``

  A nyomtató üzemen kívül helyezése. Lényegében megegyezik egy `disable` és utána egy `stop` parancs kiadásával. Az `üzenet` akkor jelenik meg, amikor a valaki megpróbálja lekérdezni a nyomtató állapotát az `lpc status` paranccsal, vagy amikor megnézi a nyomtatási sorát az lpq(1) paranccsal.

`enable `nyomtatónév``

  A nyomtatóhoz tartozó nyomtatási sor bekapcsolása. A felhasználók ezután már képesek lesznek a nyomtatónak munkákat küldeni, azonban egészen addig nem nyomtatódik ki semmi, amíg a nyomtató el nem indítjuk.

`help `parancsnév``

  Megmutatja a `parancsnév` parancshoz tartozó súgót. A `parancsnév` megadása nélkül a rendelkezésre álló parancsok listáját kapjuk meg.

`restart `nyomtatónév``

  Elindítja a nyomtatót. A felhasználók ezt a parancsot tudják használni abban az esetben, amikor valamilyen megmagyarázhatatlan okból az LPD működése megáll, viszont ezzel nem tudják elindítani a `stop` vagy `down` parancsokkal leállított nyomtatót. A `restart` parancs megegyezik az `abort` és a `start` egymás utáni kiadásával.

`start `nyomtatónév``

  Elindítja a nyomtatót, és a nyomtató nekilát kinyomtatni a sorában levő munkákat.

`stop `nyomtatónév``

  Leállítja a nyomtatót, és a nyomtató az aktuális munka befejezése után már nem kezd neki újabbnak. Ettől függetlenül a felhasználók még továbbra is képesek munkákat küldeni a nyomtatási sorába.

`topq `nyomtatónév` `munka-vagy-felhasználónév``

  Átrendezi a `nyomtatónév` nevű nyomtató sorát úgy, hogy a megadott azonosítójú `munkát` vagy a megadott `felhasználónévhez` tartozó munkákat a sor elejére teszi. Ennél a parancsnál `nyomtatónévnek` nem adhatjuk meg az `all` értéket.

`up `nyomtatónév``

  Üzembe helyezi a nyomtatót, tulajdonképpen a `down` parancs ellentéte. Megegyezik egy egymás után kiadott `start` és `enable` paranccsal.

Az lpc(8) a fenti parancsokat a parancssorból fogadja el. Ha itt nem adunk meg neki semmilyen parancsot, akkor az lpc(8) interaktív módba vált, ahol ugyanezeket a parancsokat adhatjuk ki, egészen az `exit`, `quit` parancsok vagy az állományvége jelzés begépeléséig.

Előző | Tartalom | Következő
Magasszintű nyomtatóbeállítás | Fel | Más nyomtatási rendszerek

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.