Das FreeBSD-Handbuch
Zurück | Kapitel 10. Drucken | Weiter

# 10.5. Drucker verwenden

Übersetzt von Johann Kois.

Dieser Abschnitt beschreibt, wie Sie einen unter FreeBSD konfigurierten Drucker verwenden können. Die folgende Liste bietet einen Überblick über wichtige Anwenderbefehle:

lpr(1)

  Einen Druckauftrag drucken

lpq(1)

  Eine Druckerwarteschlange prüfen

lprm(1)

  Einen Druckauftrag aus einer Warteschlange entfernen (stornieren)

Zusätzlich existiert mit lpc(8) ein Befehl zur zur Steuerung von Druckern und Druckerwarteschlangen, der im Abschnitt Drucker verwalten näher beschrieben wird.

Jeder der drei Befehle lpr(1), lprm(1), sowie lpq(1) akzeptiert die Option `-P `printer-name``, mit der Sie den zu verwendenden Drucker (der dazu in `/etc/printcap` definiert sein muss) festlegen. Dadurch sind Sie in der Lage, Druckaufträge zu erstellen, zu stornieren, oder den Status Ihrer Druckaufträge zu überprüfen. Verwenden Sie die Option `-P` nicht, wird der in der Umgebungsvariable `PRINTER` definierte Drucker verwendet. Existiert diese Variable nicht, greifen diese Befehle auf den Drucker `lp` zurück.

Im Folgenden steht der Begriff Standarddrucker daher für den über die Umgebungsvariable `PRINTER` definierten Drucker, oder, falls diese Variable nicht existiert, für den Drucker `lp`.

## 10.5.1. Druckaufträge erstellen

Um eine Datei zu drucken, geben Sie folgenden Befehl ein:

    % lpr filename ...

Dadurch wird jede angegebene Datei an den Standarddrucker geschickt. Wenn Sie keine Datei angeben, liest lpr(1) die zu druckenden Daten von der Standardeingabe. Um beispielsweise einige wichtige Systemdateien zu drucken, geben Sie folgenden Befehl ein:

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

Um einen bestimmten Drucker auszuwählen, verwenden Sie:

    % lpr -P printer-name filename ...

Das folgende Beispiel gibt eine ausführliche Liste aller im Arbeitsverzeichnis enthaltenen Dateien auf den Drucker `rattan` aus:

    % ls -l | lpr -P rattan

Da keine Dateien an lpr(1) übergeben werden, liest `lpr` die zu druckenden Daten von der Standardeingabe, in unserem Fall also die Ausgabe des Befehls `ls `-l``.

lpr(1) akzeptiert auch verschiedene Optionen zur Formatierung und Konvertierung von Dateien, zur Erzeugung von multiplen Ausdrucken und so weiter. Lesen Sie dazu den Abschnitt Druckoptionen.

## 10.5.2. Druckaufträge verwalten

Wenn Sie lpr(1) verwenden, werden alle zu druckenden Daten in ein Paket, den sogenannten “Druckauftrag”, gepackt und an LPD geschickt. Jeder Drucker verfügt über eine Druckerwarteschlange, in der Ihre Druckaufträge gemeinsam mit denen anderer Benutzer verbleiben, bis sie gedruckt werden können. Zuerst eintreffende Druckaufträge werden dabei auch zuerst gedruckt.

Um die Druckerwarteschlange des Standarddruckers anzuzeigen, verwenden Sie lpq(1). Wollen Sie einen anderen Drucker abfragen, müssen Sie die Option `-P` verwenden. Der Befehl

    % lpq -P bamboo

zeigt so die Druckerwarteschlange des Druckers `bamboo` an. Dieser Befehl liefert eine Ausgabe ähnlich der folgenden:

    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

Derzeit enthält die Warteschlange von `bamboo` drei Druckaufträge. Dem ersten Auftrag, der vom Benutzer kelly erstellt wurde, wurde die “Auftragsnummer (job number)” 9 zugewiesen. Analog erhält jeder Druckerauftrag eine eindeutige Nummer zugewiesen. Diese Nummern sind nur dann von Bedeutung, wenn Sie einen Druckauftrag stornieren wollen. Der Abschnitt Druckaufträge stornieren beschreibt, wie Sie dazu vorgehen.

Der Auftrag mit der Nummer 9 besteht aus zwei Dateien, mehrere an lpr(1) übergebene Dateien werden also als Teil eines (gemeinsamen) Druckauftrags betrachtet. Dieser Druckauftrag ist derzeit aktiv (beachten Sie den Status `active` in der Spalte “Rank”), wird also gerade gedruckt. Der zweite Auftrag besteht aus Daten, die von der Standardeingabe an lpr(1) übergeben wurden. Der dritte Auftrag wurde vom Benutzer `mary` erstellt. Er ist sehr viel größer als die anderen Aufträge. Da der Pfad der zu druckenden Datei aufgrund seiner Länge nicht in der Spalte “Files” Platz hat, werden von lpq(1) nur drei Punkte angezeigt.

Die erste Zeile der Ausgabe von lpq(1) ist ebenfalls sehr nützlich: Sie beschreibt den momentanen Druckerstatus (oder zumindest, was LPD denkt, dass der Drucker gerade macht).

lpq(1) unterstützt auch die Option `-l` zur Erstellung einer ausführlicheren Ausgabe. Die Eingabe von `lpq `-l`` erzeugt für unser obiges Beispiel die folgende Ausgabe:

    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. Druckaufträge stornieren

Mit lprm(1) können Sie einen Druckauftrag stornieren. Häufig ist lprm(1) auch noch in der Lage, einen bereits aktiven Auftrag abzubrechen, allerdings wird dabei in der Regel trotzdem ein Teil des Auftrages oder der gesamte Auftrag gedruckt.

Um einen Druckauftrag auf dem Standarddrucker zu stornieren, müssen Sie zuerst die Auftragsnummer über lpq(1) ermitteln. Danach geben Sie Folgendes ein:

    % lprm Job-Nummer

Um einen Druckauftrag eines anderen Druckers zu stornieren, benötigen Sie wiederum die Option `-P`. Der folgende Befehl entfernt den Druckauftrag mit der Nummer 10 aus der Warteschlange des Druckers `bamboo`:

    % lprm -P bamboo 10

lprm(1) unterstützt verschiedene Kurzbefehle:

lprm -

  Entfernt alle Druckaufträge (des Standarddruckers), die von Ihnen erstellt wurden.

lprm `user`

  Entfernt alle Druckaufträge (des Standarddruckers), die vom Benutzer `user` erstellt wurden. Der Superuser kann im Gegensatz zu einem normalen Benutzer auch Aufträge anderer Benutzer entfernen.

lprm

  Wenn Sie weder eine Auftragsnummer, einen Benutzernamen, noch die Option `-` angeben, entfernt lprm(1) den aktiven Druckauftrag auf dem Standarddrucker, falls dieser Auftrag von Ihnen erstellt wurde. Der Superuser kann hingegen jeden aktiven Druckauftrag abbrechen.

Verwenden Sie zusätzlich die Option `-P` zu den eben beschriebenen Kurzbefehlen, wenn Sie diese auf einen anderen Drucker als den Standarddrucker anwenden wollen. So entfernt der folgende Befehl beispielsweise alle Druckaufträge des aktuellen Benutzers aus der Druckerwarteschlange des Druckers `rattan`:

    % lprm -P rattan -

> Anmerkung: Wenn Sie in einer Netzwerkumgebung arbeiten, erlaubt es lprm(1) Ihnen nur, Druckaufträge auf dem Rechner zu stornieren, auf dem sie erstellt wurden. Dies gilt selbst dann, wenn der gleiche Drucker auch auf anderen Rechnern des Netzwerks verfügbar ist. Die folgende Befehlsfolge veranschaulicht diesen Umstand:

>     % 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

## 10.5.4. Abseits von normalem Text: Druckoptionen

lpr(1) unterstützt verschiedene Optionen zur Formatierung von Text, zur Konvertierung von Grafik- und anderen Dateiformaten, zur Erzeugung von multiplen Kopien, zur Verwaltung von Druckaufträgen und andere mehr. Dieser Abschnitt beschreibt einige dieser Optionen.

### 10.5.4.1. Formatierungs- und Konvertierungsoptionen

Die folgenden lpr(1)-Optionen kontrollieren die Formatierung von in einem Druckauftrag enthaltenen Dateien. Verwenden Sie diese Optionen, wenn Ihr Druckauftrag keinen normalen Text enthält, oder wenn Sie normalen Text mit pr(1) formatieren wollen.

Der folgende Befehl druckt so beispielsweise eine DVI-Datei (des TeX-Satzsystems) namens ``fish-report.dvi`` auf dem Drucker `bamboo`:

    % lpr -P bamboo -d fish-report.dvi

Diese Optionen gelten für jede Datei des Druckauftrags, daher ist es nicht möglich beispielsweise DVI- und ditroff-Dateien über den gleichen Druckauftrag zu drucken. Sie müssen diese Dateien vielmehr über getrennte Druckaufträge drucken, wobei Sie jeweils geeignete Konvertierungsoptionen verwenden.

> Anmerkung: Alle Optionen mit Ausnahme von `-p` und `-T` setzen einen installierten und für den jeweiligen Drucker konfigurierten Konvertierungsfilter voraus. So benötigt die Option `-d` den DVI-Konvertierungsfilter. Diese Filter werden im Abschnitt Konvertierungsfilter ausführlich beschrieben.

`-c`

  Druckt cifplot-Dateien.

`-d`

  Druckt DVI-Dateien.

`-f`

  Druckt FORTRAN-Textdateien.

`-g`

  Druckt Plot-Daten.

`-i `anzahl``

  Rückt die Ausgabe um `anzahl` Spalten ein, lassen Sie `anzahl` weg, wird der Text um 8 Spalten eingerückt. Beachten Sie aber, dass diese Option nicht mit allen Konvertierungsfiltern funktioniert.

  > Anmerkung: Zwischen der Option `-i` und der der Zahl darf dabei kein Leerzeichen stehen.

`-l`

  Druckt Text inklusive vorhandener Steuerzeichen.

`-n`

  Druckt ditroff-Dateien (geräteunabhängiges troff).

-p

  Formatiert normalen Text mit pr(1), bevor der Ausdruck erfolgt.

`-T `titel``

  Verwende `titel` auf dem pr(1)-Deckblatt anstelle des Dateinamens. Diese Option ist nur wirksam, wenn sie gemeinsam mit der Option `-p` verwendet.

`-t`

  Druckt troff-Daten.

`-v`

  Druckt Rasterdaten.

Dazu ein Beispiel. Der folgende Befehl druckt eine formatierte Version der Manualpage zu ls(1) auf den Standarddrucker:

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

zcat(1) dekomprimiert den Quellcode der Manualpage ls(1) und reicht ihn an troff(1) weiter, das ihn formatiert und daraus GNU troff-Daten erzeugt. Diese werden wiederum an lpr(1) weitergereicht, das den Druckauftrag schließlich an LPD übergibt. Da die Option `-t` von lpr(1) verwendet wurde, konvertiert das Drucksystem die GNU troff-Daten zuvor in ein Format, das der Standarddrucker verstehen und ausgeben kann.

### 10.5.4.2. Druckaufträge verwalten

Die folgenden Optionen von lpr(1) weisen LPD an, den Druckauftrag auf verschiedene Art und Weise zu behandeln:

-# `anzahl`

  Erzeugt `anzahl` Ausdrucke jeder im Druckauftrag enthaltenen Datei anstelle eines einzigen Exemplars. Diese Option kann von einem Administrator deaktiviert werden, um die Beanspruchung des Druckers zu verringern. Lesen Sie den Abschnitt Den Ausdruck von mehreren Kopien verhindern, wenn Sie diese Funktion benötigen.

  Das folgende Beispiel druckt drei Kopien der Datei ``parser.c``, gefolgt von drei Kopien von ``parser.h`` auf den Standarddrucker:

      % lpr -#3 parser.c parser.h

-m

  Verschickt eine E-Mail, nachdem der Druckauftrag beendet wurde. Verwenden Sie diese Option, sendet LPD Ihnen eine E-Mail, wenn es die Bearbeitung Ihres Druckauftrages abgeschlossen hat. Diese Nachricht enthält Informationen darüber, ob Ihr Auftrag erfolgreich erledigt wurde oder ob ein Fehler auftrat. Ist dies der Fall, wird meist noch angegeben, welcher Fehler auftrat.

-s

  Kopiert die Dateien nicht in das Spooling-Verzeichnis, sondern verlinkt stattdessen symbolisch auf diese Dateien.

  Wenn Sie einen umfangreichen Druckauftrag erstellen, werden Sie diese Option wahrscheinlich verwenden wollen. Einerseits sparen Sie dadurch Speicherplatz im Spooling-Verzeichnis (im schlimmsten Fall könnte Ihr Druckauftrag ansonsten das Dateisystem des Spooling-Verzeichnis zum Überlaufen bringen), andererseits sparen Sie dadurch auch Zeit, weil LPD die in Ihrem Druckauftrag enthaltenen Dateien nicht in das Spooling-Verzeichnis kopieren muss.

  Da LPD in diesem Fall die Originaldateien verwendet, muss sichergestellt sein, dass diese nicht verändert werden, bevor der Ausdruck abgeschlossen ist.

  > Anmerkung: Wenn Sie auf einen entfernten Drucker drucken, muss LPD die Dateien dennoch vom lokalen auf den entfernten Rechner kopieren. In diesem Fall spart die Option `-s` Speicherplatz lediglich im lokalen Spooling-Verzeichnis, nicht aber im entfernten. Dennoch ist diese Option auch in diesem Fall nützlich.

-r

  Löscht die im Druckauftrag enthaltenen Dateien, nachdem sie in das Spooling-Verzeichnis kopiert oder unter Verwendung der Option `-s` gedruckt werden. Verwenden Sie diese Option daher nur mit äußerster Vorsicht!

### 10.5.4.3. Deckblatt-Optionen

Die folgenden lpr(1)-Optionen passen den Text an, der auf einem Deckblatt eines Druckauftrages ausgegeben wird. Wird die Ausgabe von Deckblättern auf dem Zieldrucker unterdrückt, bleiben diese Optionen wirkungslos. Lesen Sie den Abschnitt Deckblätter, wenn Sie diese Funktion benötigen.

-C `text`

  Ersetzt den Rechnernamen auf dem Deckblatt durch `text`. Der Rechnername ist dabei in der Regel der Name des Rechners, auf dem der Druckauftrag erstellt wurde.

-J `text`

  Ersetzt den Namen des Druckauftrages auf dem Deckblatt durch `text`. Der Name des Druckauftrages entspricht in der Regel dem Namen der ersten Datei des Druckauftrages oder `stdin`, wenn Sie die Standardeingabe an den Drucker weiterleiten.

-h

  Verhindert den Ausdruck von Deckblättern.

  > Anmerkung: Ob diese Option funktioniert, hängt von der Art und Weise ab, wie Deckblätter auf Ihrem System erzeugt werden. Lesen Sie den Abschnitt Deckblätter für weitere Informationen.

## 10.5.5. Drucker verwalten

Als Administrator Ihres Systems ist es Ihre Aufgabe, Drucker zu installieren, zu konfigurieren und zu testen. Um mit Ihrem Drucker zu kommunizieren, können Sie lpc(8) verwenden. Dadurch sind Sie in der Lage,

- Ihre Drucker zu starten und zu beenden.

- Die Warteschlangen Ihrer Drucker zu aktivieren und zu deaktivieren.

- Die Reihenfolge der Druckaufträge zu ändern.

Am Anfang dieses Abschnitts steht die Erklärung einiger Begriffe. Wenn ein Drucker beendet ist, wird der Inhalt seiner Warteschlange nicht gedruckt. Druckaufträge können zwar weiterhin erstellt werden, diese verbleiben aber solange in der Warteschlange, bis der Drucker wieder gestartet oder die Warteschlange gelöscht wird.

Ist eine Warteschlange deaktiviert, kann (mit Ausnahme von `root`) kein Benutzer mehr einen Druckauftrag erteilen. Ist die Warteschlange hingegen aktiviert, können Druckaufträge erteilt werden. Ist ein Drucker zwar gestartet, die Warteschlange hingegen deaktiviert, werden dennoch alle noch in der Warteschlange vorhandenen Druckaufträge gedruckt.

Im Allgemeinen benötigen Sie `root`-Rechte, um lpc(8) einsetzen zu können. Als normaler Benutzer erlaubt es Ihnen lpc(8) lediglich, den Druckstatus abzufragen und einen hängenden Drucker neu zu starten.

Es folgt nun eine Zusammenfassung der Befehle von lpc(8). Die meisten dieser Befehle benötigen das Argument `printer-name`, mit dem Sie angeben, auf welchen Drucker der Befehl angewendet werden soll. Wenn Sie für `printer-name` `all` angeben, wird der Befehl auf alle in `/etc/printcap` definierten Drucker angewendet.

`abort `printer-name``

  Bricht den aktuellen Druckauftrag ab und beendet den Drucker. Solange die Warteschlange aktiviert ist, können allerdings weiterhin Druckaufträge erteilt werden.

`clean `printer-name``

  Entfernt veraltete Dateien aus dem Spooling-Verzeichnis des Druckers, da diese manchmal nicht vollständig von LPD entfernt werden können. Dies ist insbesondere dann der Fall, wenn während der Bearbeitung des Druckauftrages Fehler auftraten. Dieser Befehl sucht dabei nach Dateien, die nicht in das Spooling-Verzeichnis gehören und entfernt diese.

`disable `printer-name``

  Deaktiviert die Annahme neuer Druckaufträge. Solange der Drucker nicht beendet wird, werden weiterhin alle in der Warteschlange enthaltenen Auftrage bearbeitet und gedruckt. `root` kann jederzeit Druckaufträge erstellen, selbst dann, wenn die Druckerwarteschlange deaktiviert ist.

  Dieser Befehl ist besonders nützlich, wenn Sie einen neuen Drucker testen müssen oder einen neuen Filter installiert haben. Dazu deaktivieren Sie die Warteschlange des Druckers und erstellen Ihre Druckaufträge als `root`. Andere Benutzer können erst dann einen Druckauftrag erstellen, wenn Sie Ihre Tests abgeschlossen haben und die Druckerwarteschlange mit `enable` wieder reaktivieren.

`down `printer-name` `nachricht``

  Beendet einen Drucker. Äquivalent zu `disable`, gefolgt von `stop`. Die von Ihnen definierte `nachricht` wird als Druckerstatus angezeigt, wenn ein Benutzer die Warteschlange des Druckers mit lpq(1) oder mit `lpc status` abfragt.

`enable `printer-name``

  Aktiviert die Warteschlange eines Druckers. Erteilte Druckaufträge können zwar erteilt werden, diese werden aber nur dann gedruckt, wenn der Drucker auch gestartet ist.

`help `command-name``

  Ausgaben von hilfreichen Informationen zu `command-name`. Wird kein `command-name` angegeben, wird die Liste der verfügbaren Befehle ausgegeben.

`restart `printer-name``

  Startet den Drucker. Normale Benutzer können diesen Befehl verwenden, um einen hängenden LPD zu reaktivieren, sie sind allerdings nicht berechtigt, einen Drucker zu starten, der mit `stop` oder `down` beendet wurde. Dieser Befehl ist äquivalent zu `abort`, gefolgt von `start`.

`start `printer-name``

  Startet den Drucker, um die in der Warteschlange enthaltenen Aufträge zu drucken.

`stop `printer-name``

  Beendet den Drucker. Der Drucker beendet den aktiven Druckauftrag noch, danach wird kein weiterer in der Warteschlange enthaltener Auftrag gedruckt. Obwohl der Drucker beendet wurde, können weiterhin Druckaufträge erteilt werden, solange die Warteschlange nicht deaktiviert wurde.

`topq `printer-name` `job-or-username``

  Sortiert die Druckerwarteschlange des Druckers `printer-name` um, wobei der Auftrag mit der angegebenen `Auftragsnummer`, oder Druckaufträge, die von `username` erstellt wurden, an den Beginn der Warteschlange gesetzt werden. Für diesen Befehl kann die Option `all` nicht als `printer-name` verwendet werden.

`up `printer-name``

  Startet einen Drucker. Das Gegenstück zu `down`. Äquivalent zu `start`, gefolgt von `enable`.

lpc(8) akzeptiert diese Befehle direkt auf der Kommandozeile. Geben Sie keinen Befehl ein, wird lpc(8) im interaktiven Modus gestartet. In diesem Modus können Sie solange Befehle eingeben, bis Sie `exit` oder `quit` eingeben.

Zurück | Zum Anfang | Weiter
Erweiterte Drucker-Konfiguration | Nach oben | Alternativen zum LPD-Drucksystem

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.