10.5. Printers gebruiken
Terug | Hoofdstuk 10. Afdrukken | Volgende

## 10.5. Printers gebruiken

Hieronder wordt beschreven hoe printers die onder FreeBSD geïnstalleerd zijn gebruikt moeten worden. Nu volgt een overzicht van de commando's op gebruikersniveau:

lpr(1)

  Druk opdrachten af

lpq(1)

  Controleer printerwachtrijen

lprm(1)

  Verwijder opdrachten uit de wachtrij van een printer

Er is ook een administratief commando, lpc(8), beschreven in Printers beheren, dat gebruikt wordt om printers en hun wachtrijen in te stellen.

Alledrie de commando's lpr(1), lprm(1) en lpq(1) accepteren een optie `-P`printernaam`` om aan te geven op welke printer uit `/etc/printcap` een opdracht van toepassing is. Dit biedt de mogelijkheid opdrachten te versturen, verwijderen en controleren voor verschillende printers. Als `-P` niet wordt gebruikt, werken deze commando's op de printer gedefinieerd in de omgevingsvariabele `PRINTER`. Tot slot, wanneer de omgevingsvariabele `PRINTER` niet is gedefinieerd, wordt standaard verwezen naar de printer met de naam `lp`.

### 10.5.1. Opdrachten afdrukken

Om bestanden af te drukken:

    % lpr bestandsnaam ...

Dit drukt elk van de opgegeven bestanden af op de standaard printer. Als geen bestanden worden opgegeven, drukt lpr(1) de standaard invoer af. De volgende opdracht drukt bijvoorbeeld een paar belangrijke systeembestanden af:

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

Om een specifieke printer te selecteren:

    % lpr -P printernaam bestandsnaam ...

Dit voorbeeld drukt een lange opgave van de huidige map af op de printer `rattan`:

    % ls -l | lpr -P rattan

Omdat er geen bestanden worden meegegeven aan het commando lpr(1), drukt `lpr` de gegevens af die het van de standaard invoer leest: de uitvoer van het commando `ls -l`.

lpr(1) accepteert ook een breed scala aan opties om de vorm aan te passen, bestandsconversies toe te passen, meerdere kopieën af te drukken, enzovoort. Meer informatie staat in Afdrukopties.

### 10.5.2. Opdrachten controleren

Als lpr(1) wordt gebruikt om af te drukken, dan worden de gegevens die afdrukt moet worden in een pakketje samengevoegd dat een “afdrukopdracht” wordt genoemd en naar het wachtrijsysteem LPD gestuurd. Elke printer heeft een wachtrij met opdrachten van alle gebruikers. Een printer drukt deze opdrachten op volgorde van binnenkomst af.

De wachtrij voor de standaardprinter kan worden weergegeven met lpq(1). Voor een specifieke printer moet de optie `-P` meegegeven worden. Het volgende commando toont de wachtrij van printer `bamboo`:

    % lpq -P bamboo

Hieronder volgt een voorbeeld van de uitvoer van het commando `lpq`:

    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

Dit laat drie opdrachten zien in de wachtrij voor `bamboo`. De eerste opdracht, gegeven door gebruiker `kelly`, heeft opdrachtnummer 9 gekregen. Elke opdracht voor een printer krijgt een uniek opdrachtnummer. Dit nummer kan in de meeste gevallen genegeerd worden, maar is nodig om een opdracht te annuleren. In Opdrachten verwijderen staan meer details.

Opdrachtnummer negen bestaat uit twee bestanden; meerdere bestanden opgegeven naar lpr(1), worden als één enkele opdracht behandeld. Het is de actieve opdracht (`active` onder de kolom “Rank”), wat betekent dat de printer deze opdracht momenteel aan het afdrukken is. De tweede opdracht bestaat uit gegevens doorgegeven aan lpr(1) als standaard invoer. De derde opdracht is afkomstig van gebruiker `mary`. Het is een veel grotere opdracht. De bestandsnaam van het bestand dat ze probeert af te drukken is te lang voor het overzicht, daarom toont lpq(1) drie puntjes.

De allereerste regel uitvoer van lpq(1) is ook handig: die vertelt wat de printer momenteel aan het doen is; dat wil zeggen, wat LPD denkt dat de printer aan het doen is.

Het commando lpq(1) ondersteunt ook een optie `-l` om een gedetailleerd, lang overzicht te geven. Hieronder volgt voorbeelduitvoer van `lpq -l`:

    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

### 10.5.3. Opdrachten verwijderen

Een gebruiker die van gedachten verandert over een af te drukken opdracht, kan een opdracht uit een wachtrij halen met het commando lprm(1). Vaak kan met lprm(1) zelfs een actieve opdracht worden verwijderd, maar een deel of alles van de opdracht kan desondanks toch worden afgedrukt.

Om een opdracht van de standaardprinter te verwijderen dient eerst met lpq(1) het opdrachtnummer gevonden te worden. Typ vervolgens:

    % lprm opdrachtnummer

Om een opdracht van een specifieke printer te verwijderen, moet de optie `-P` worden toegevoegd. Het volgende commando verwijdert opdrachtnummer 10 uit de wachtrij van printer `bamboo`:

    % lprm -P bamboo 10

Het commando lprm(1) heeft een aantal snelkoppelingen:

lprm -

  Verwijder alle opdrachten (voor de standaardprinter) van de huidige gebruiker.

lprm `gebruiker`

  Verwijder alle opdrachten (voor de standaardprinter) die van `gebruiker` zijn. De supergebruiker kan opdrachten van andere gebruikers verwijderen. Andere gebruikers kunnen alleen hun eigen opdrachten verwijderen.

lprm

  Zonder een opdrachtnummer, gebruikersnaam of `-` op de opdrachtregel, verwijdert lprm(1) de huidige actieve opdracht van de huidige gebruiker op de standaard printer. Alleen de supergebruiker kan iedere actieve opdracht verwijderen.

Gebruik de optie `-P` met bovenstaande snelkoppelingen om een specifieke printer in plaats van de standaard printer te selecteren. Het volgende voorbeeld verwijdert alle opdrachten van de huidige gebruiker uit de wachtrij van printer `rattan`:

    % lprm -P rattan -

### Opmerking:

Als in een netwerkomgeving wordt gewerkt, staat lprm(1) alleen toe opdrachten te verwijderen vanaf hosts waarvan de afdrukopdrachten zijn gegeven, ook als dezelfde printer vanaf andere hosts bereikbaar is. Het volgende voorbeeld demonstreert dit:

    % lpr -P rattan mijnbestand
    % 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

### 10.5.4. Meer dan platte tekst: afdrukopties

Het commando lpr(1) ondersteunt een aantal opties voor de opmaak van platte tekst, het converteren van grafische en andere bestandsformaten, het afdrukken van meerdere kopieën, afwikkeling van een opdracht en meer. In deze sectie worden die opties beschreven.

#### 10.5.4.1. Opties voor opmaak en conversie

De volgende opties voor lpr(1) zorgen voor de opmaak van de bestanden in de opdracht. Gebruik deze opties als de opdracht geen platte tekst bevat of als platte tekst opgemaakt dient te worden met behulp van pr(1).

Het volgende commando drukt bijvoorbeeld een DVI-bestand af (van het TeX typesettingsysteem) met de naam `visrapport.dvi` op de printer `bamboo`:

    % lpr -P bamboo -d visrapport.dvi

Deze opties zijn van toepassing op alle bestanden in de opdracht. Het is dus niet mogelijk om bijvoorbeeld DVI- en ditroff-bestanden in een opdracht samen te voegen. In plaats hiervan moeten deze bestanden als aparte opdrachten worden gegeven, elk met een andere conversie-optie.

### Opmerking:

Al deze opties, behalve `-p` en `-T`, vereisen dat er conversiefilters zijn geïnstalleerd voor een printer. De optie `-d` vereist bijvoorbeeld het DVI-conversiefilter. In Conversiefilters staan de details beschreven.

`-c`

  Afdrukken van cifplot-bestanden.

`-d`

  Afdrukken van DVI-bestanden.

`-f`

  Afdrukken van FORTRAN tekstbestanden.

`-g`

  Afdrukken van plotgegevens.

`-i `aantal``

  De uitvoer wordt `aantal` kolommen ingesprongen. Als `nummer` wordt weggelaten, wordt acht kolommen ingesprongen. Deze optie werkt alleen met bepaalde conversiefilters.

  ### Opmerking:

  Plaats geen spatie tussen de `-i` en het nummer.

`-l`

  Drukt letterlijke tekstgegevens af, inclusief controlekarakters.

`-n`

  Afdrukken van ditroff (apparaatonafhankelijke troff) gegevens.

-p

  Opmaak van platte tekst met pr(1) alvorens af te drukken. Zie pr(1) voor meer informatie.

`-T `titel``

  Gebruik `titel` op de pr(1) koptekst in plaats van de bestandsnaam. Deze optie heeft alleen effect in combinatie met de optie `-p`.

`-t`

  Afdrukken van troffgegevens.

`-v`

  Afdrukken van rastergegevens.

In het volgende voorbeeld wordt een mooi opgemaakte versie van de handleiding ls(1) afgedrukt op de standaardprinter:

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

Het commando zcat(1) pakt de broncode van de ls(1) handleiding uit en geeft het door aan het commando troff(1), dat de broncode opmaakt, er GNU troff van maakt en dit doorstuurt naar lpr(1), dat de opdracht naar de LPD wachtrij stuurt. Omdat de optie `-t` meegeven wordt aan lpr(1), converteert het wachtrijsysteem de GNU troff uitvoer naar een formaat dat de standaardprinter begrijpt als de opdracht wordt afgedrukt.

#### 10.5.4.2. Opties voor opdrachtafhandeling

De volgende opties voor lpr(1) geven LPD aan de opdracht speciaal te behandelen:

-# `kopieën`

  Produceer een aantal van `kopieën` kopieën van elk bestand in de opdracht, in plaats van één kopie. Een beheerder kan deze optie uitschakelen om slijtage van de printer te voorkomen en gebruik van een kopieerapparaat aan te moedigen. Zie Meerdere kopieën beperken.

  Dit voorbeeld drukt drie kopieën af van `parser.c` gevolgd door drie kopieën van `parser.h` op de standaardprinter:

      % lpr -#3 parser.c parser.h

-m

  Stuur een email na voltooiing van de afdrukopdracht. Met deze optie stuurt het LPD-systeem een email als een opdracht is afgehandeld. In dit bericht vertelt het of de opdracht succesvol is uitgevoerd of dat er een fout was met (vaak) de aard van de fout.

-s

  Kopieer de bestanden niet naar de wachtrijmap, maar maak in plaats hiervan een symbolische link.

  Bij het afdrukken van een grote opdracht is het handig van deze optie gebruik te maken. Het spaart ruimte in de wachtrijmap (het kan zijn dat de opdracht de vrije ruimte verbruikt in het bestandssysteem waarin de wachtrijmap zich bevindt). Het bespaart ook tijd, omdat LPD niet elke byte van de opdracht naar de wachtrijmap hoeft te kopieëren.

  Er is echter een nadeel: aangezien LPD het originele bestand nodig heeft, is het niet mogelijk dit te wijzigen, of te verwijderen totdat het is afgedrukt.

  ### Opmerking:

  Bij het afdrukken op een printer in een netwerk, moet LPD een bestand uiteindelijk toch kopieëren van een lokale host naar een netwerkhost. De optie `-s` bespaart dus ruimte in een lokale wachtrijmap, niet in die van een host in een netwerk. Het blijft echter nuttig.

-r

  Verwijder bestanden in een opdracht na ze naar een wachtrij gekopieerd te hebben of na ze te hebben afgedrukt als de optie `-s` is gebruikt. Wees voorzichtig met deze optie!

#### 10.5.4.3. Voorbladopties

Deze opties voor lpr(1) passen de tekst aan die gewoonlijk op het voorblad van een opdracht verschijnt. Deze opties hebben geen effect als het afdrukken van voorbladen wordt onderdrukt op een gebruikte printer. Zie Voorbladen voor meer informatie over het opzetten van voorbladen.

-C `tekst`

  Vervang de hostnaam op het voorblad door `tekst`. De hostnaam is gewoonlijk de naam van de host waarvan de opdracht is verstuurd.

-J `tekst`

  Vervang de naam van de opdracht op het voorblad door `tekst`. De naam van de opdracht is standaard de naam van het eerste bestand in de opdracht of `stdin` als de standaard uitvoer wordt afgedrukt.

-h

  Druk geen voorblad af.

  ### Opmerking:

  Bij sommige installaties kan het zijn dat deze optie geen effect heeft door de manier waarop de voorbladen worden gegenereerd. Zie Voorbladen voor de details.

### 10.5.5. Printers beheren

De beheerder van de printers in een netwerk heeft deze moeten installeren, opzetten en testen. Met het commando lpc(8) kan een beheerder op nog meer manieren communiceren met printers. Met lpc(8) is het mogelijk om:

- Printers te starten en te stoppen;

- Wachtrijen aan en uit te zetten;

- De volgorde van opdrachten in elke wachtrij aan te passen.

Ten eerste een opmerking over terminologie: als een printer is gestopt, drukt die niets uit een wachtrij af. Gebruikers kunnen nog steeds opdrachten geven, maar opdrachten wachten in een wachtrij totdat de bijbehorende printer is gestart of als de wachtrij vrij is.

Als een wachtrij is uitgeschakeld, kan geen enkele gebruiker (behalve `root`) opdrachten naar een printer versturen. Een ingeschakelde wachtrij accepteert opdrachten. Een printer met een uitgeschakelde wachtrij kan worden gestart en drukt dan alle afdrukopdrachten in de wachtrij af tot deze leeg is.

In het algemeen is het nodig `root`-rechten te hebben om het commando lpc(8) te gebruiken. Gewone gebruikers kunnen het commando lpc(8) gebruiken om een printerstatus op te vragen en om een vastgelopen printer te herstarten.

Nu volgt een samenvatting van de lpc(8) commando's. De meeste commando's accepteren een argument `printernaam`, om aan te geven op welke printer te werken. Om op alle printers te werken die in `/etc/printcap` genoemd worden, kan `all` worden gebruikt als `printernaam`.

`abort printernaam`

  Annuleer de huidige opdracht en stop de printer. Gebruikers kunnen nog steeds opdrachten versturen als de wachtrij is ingeschakeld.

`clean printernaam`

  Verwijder oude bestanden uit de wachtrijmap van de betreffende printer. Het kan wel eens gebeuren dat de bestanden waaruit een opdracht bestaat niet juist worden verwijderd door LPD. Dit gebeurt bijvoorbeeld wanneer er fouten zijn opgetreden tijdens het afdrukken of tijdens grote administratieve activiteit. Dit commando vindt en verwijdert bestanden die niet in de wachtrijmap thuishoren.

`disable printernaam`

  Nieuwe opdrachten kunnen niet meer in de wachtrij worden geplaatst. Als de printer nog draait, drukt die de opdrachten die zich nog in de wachtrij bevinden af. De supergebruiker (`root`) kan altijd opdrachten versturen, ook naar een uitgeschakelde wachtrij.

  Dit commando is handig bij het testen van een nieuwe printer of een filterinstallatie: schakel de wachtrij uit en verstuur als `root` opdrachten. Andere gebruikers kunnen geen opdrachten versturen totdat het testen is voltooid en de wachtrij weer is ingeschakeld met het commando `enable`.

`down printernaam boodschap`

  Schakel een printer uit. Equivalent aan `disable` gevolgd door `stop`. De `boodschap` verschijnt als de status van de printer als een gebruiker de wachtrij van de printer controleert met lpq(1) of de status met `lpc status`.

`enable printernaam`

  Schakel de wachtrij van een printer in. Gebruikers kunnen opdrachten versturen, maar de printer drukt ze pas af als deze is gestart.

`help commandonaam`

  Geef hulp over het commando `commandonaam`. Zonder `commandonaam`, wordt een samenvatting van de beschikbare commando's getoond.

`restart printernaam`

  Start de printer. Gewone gebruikers kunnen dit commando gebruiken als door een uitzonderlijke omstandigheid LPD hangt, maar ze kunnen een printer niet starten die gestopt is met een van de commando's `stop` of `down`. Het commando `restart` is equivalent aan `abort` gevolgd door `start`.

`start printernaam`

  Start de printer. De printer drukt opdrachten in zijn wachtrij af.

`stop printernaam`

  Stop de printer. De printer maakt de huidige opdracht af en drukt opdrachten in de wachtrij niet af. Gebruikers kunnen nog steeds opdrachten versturen naar een ingeschakelde wachtrij, ook al is de printer gestopt.

`topq printernaam opdracht-of-gebruikersnaam`

  Herschik de wachtrij voor `printernaam` door de opdrachten met de opgegeven `opdracht` nummers of opdrachten van `gebruikersnaam` bovenaan de wachtrij te plaatsen. Voor dit commando is het niet mogelijk `all` te gebruiken als `printernaam`.

`up printernaam`

  Schakel een printer in. Het omgekeerde van het commando `down`. Equivalent aan `start` gevolgd door `enable`.

lpc(8) accepteert bovenstaande commando's op de opdrachtregel. Als er geen commando's worden gegeven, schakelt lpc(8) over op een interactieve modus, waar opdrachten gegeven kunnen worden totdat het commando `exit`, `quit` of einde-van-bestand wordt gegeven.

Terug | Omhoog | Volgende
10.4. Geavanceerde printerinstallatie | Begin | 10.6. Alternatieven voor het standaard wachtrijsysteem