Zu Hauptinhalt springen

Drucken

Drucken unter Linux (und MacOS X) mit CUPS

Das Common Unix Printing System (CUPS) ist ein freies Drucksystem, ein Daemon, der das Drucken unter den verschiedenen unixoiden Betriebssystemen erm?glicht. CUPS besteht aus einer Client-Server-Architektur; das hei?t, das Programm ist in einen Druck-Client und einen Druck-Server aufgeteilt: Der Druck-Client schickt die Druckauftr?ge (z.B. lpr, gnome-print, kde-print), der Druck-Server (cupsd) erledigt das Drucken, oder schickt es zu einem weiteren Druckserver. Es wird das Internet Printing Protocol (IPP) verwendet (Port 631).

  • Administriert wird CUPS mit einem Browser über: localhost:631
  • Allgemeines zum Drucken an der Uni-Regensburg
  • Drucken an einen lokalen per USB angeschlossenen Drucker:
    Unter Linux wird mittlerweile ein lokal angeschlossener USB-Drucker automatisch konfiguriert und eingerichtet. Erkennbar ist ein solcher Drucker an der DeviceURI des Druckers die mit "usb://..." oder "hp:/" beginnt, im Webinterface oder mit "lpstat -v"
  • Drucken an einen Netzwerkdrucker (per TCP/IP direkt auf den Drucker)
    Erkennbar ist ein solcher Drucker an der DeviceURI des Druckers die mit "socket://..." ? beginnt, im Webinterface oder mit "lpstat -v"
  • Drucken an einen zentralen Netzwerkdrucker (über die zentralen iPrint Server)
    Erkennbar ist ein solcher Drucker an der DeviceURI des Druckers die mit "iprint://..." oder "ipp://..." ? beginnt, im Webinterface oder mit "lpstat -v"


Drucken mit CUPS auf der Kommandozeile

siehe auch: CUPS-Dokumentation

Auflisten bekannter Drucker; Defaultdrucker

Welche Drucker Ihrem Rechner bekannt sind, erfahren Sie mit dem Befehl lpstat (line printer status). Das hei?t aber noch lange nicht, dass Sie auf all diese Drucker auch zugreifen k?nnen...

phy314:~> lpstat -p
printer rcipprphy3 now printing rcipprphy3-4.? enabled since Do 17 Okt
printer rzdrumwelt80g is idle.? enabled since Mo 14 Okt
[...]

Die Druckkostenabrechnung erfolgt über die iPrint-Server des Rechenzentrums. Ausdrucken aus Applikationen wie z.B. aus einem Browser heraus ist selbsterl?uternd. Der Drucker im Linux-CIP-Pool Physik hei?t rcipprphy3. Normalerweise sollte dieser Drucker auch als sog. Defaultdrucker eingetragen sein; die Eingabe des expliziten Druckernamens erübrigt sich dann bei allen folgenden Befehlen. Schauen wir mal, ob z.Z. ein Defaultdrucker existiert:

phy314:~> lpstat -d system default destination: rcipprphy3 
rz500:~> lpstat -d kein System-Standardzielort 

Drucken aus der Konsole

Der Befehl lp (line printer) druckt Dateien (in der Regel PostScript-Dateien).

phy314:~> lp datei.ps # Defaultdrucker
phy314:~> lp -d rzdrumwelt80g datei.ps # beliebiger Drucker

Informationen über Druckauftr?ge

Der Befehl lpq (line printer query) informiert über Druckjobs.

phy314:~> lpq?????????????????????????? # Defaultdrucker
rcipprphy3 ist bereit keine Eintr?ge

phy314:~> lpq -P rzdrumwelt80g?????????? # beliebiger Drucker
rzdrumwelt80g ist bereit
Rank??? Owner??? Job???? File(s)??????? Total Size
active? wuf04055 237???? test17.ps????? 756320 bytes

L?schen von (eigenen) Druckauftr?gen

Mit dem Befehl cancel k?nnen Sie eigene Druckauftr?ge l?schen.



phy314:~> lp -d rzdrumwelt80g unsinn.ps
request id is rzdrumwelt80g-244 (1 file(s))

phy314:~> lpq -P rzdrumwelt80g
Rank??? Owner??? Job???? File(s)??????? Total Size
active? wuf04055 244???? test17.ps????? 756320 bytes
phy314:~> cancel rzdrumwelt80g-244
?

Wandlung von ASCII-Text zu PostScript

ASCII-Texte (z.B. den Quellcode Ihres Programms, das Sie gerade schreiben) k?nnen Sie mittels a2ps auf einem PostScript-Drucker ausdrucken. Wenn Sie mit dem Parameter -o eine Ausgabedatei angeben, wird das erzeugte PostScript stattdessen in der angegebenen Datei gespeichert.

phy314:~> a2ps -Ppf -R -1 demo.php # drucken
phy314:~> a2ps -Ppf -R -1 -o demo.ps demo.php # speichern

Problem: a2ps kennt nicht die aktuelle Zeichenkodierung UTF 8, nur die alte ISO 8859-1. Unser aktuelles Unix-System benutzt aber schon UTF 8. Umlaute werden daher durch a2ps zerst?rt:

a2ps texte.fw
Ger?te wie z.B. DIN A0 - Plotter und auch gr??ere Drucker bedürfen regelm??iger Pflege

iconv --to-code=ISO-8859-1 --from-code=UTF-8 texte.fw | a2ps
Ger?te wie z.B.? DIN A0 - Plotter und auch gr??ere Drucker bedürfen regelm??iger Pflege

Sie haben hier die sog. Pipe ? | ? gesehen: der Output eines Befehls (hier iconv zum Konvertieren von Text) wird als Input eines anderen (hier a2ps) genutzt.

IO-Redirection

ls -l > testfile?
# Listung des aktuellen Directories nach testfile
ls -l / >> testfile??????????? # Anh?ngen an das File
sort < inputfile????????????? # Lese aus einer Datei
cat inputfile | sort??????????? # Die Pipe '|' sendet die Ausgabe des?
? ? ? ? ? ? ? ? ? ? ? ? ? # ersten Programmes direkt an das zweite;
????????????????????????? # sort inputfile geht aber auch!
cat inputfile | tee ./outputfile? # tee schreibt die Eingabe sowohl auf
????????????????????????? # die Konsole als
? ? ? ? ? ? ? ? ? ? ?? ?? # auch in eine Datei
????????????????????? ? ? #(nützlich beim Debuggen von Scripten)


Architektur

Quelle: http://en.wikipedia.org/wiki/CUPS (abgewandelt)


Administration

Administriert wird CUPS mit einem Browser über: http://localhost:631 bwin娱乐_bwin娱乐官网欢迎您@es Interface ist auf allen Linux-Distributionen gleich, ebenso auf Mac OS X. Daneben gibt es noch Desktop-integrierte Administrationsprogramme oder das Editieren der Konfigurationsdateien.

Konfiguration eines Druckers:

  • Druckername (Queuename): bwin娱乐_bwin娱乐官网欢迎您@er Name erscheint in den Anwendungen.?Namen ohne Leerzeichen werden empfohlen.
  • Beschreibung / Ort: frei w?hlbare Bezeichnungen
  • Driver: bwin娱乐_bwin娱乐官网欢迎您@ ist eine PostScript Printer Description Textdatei (PPD), die nach Installation des Druckers unter /etc/cups/ppd/.ppd liegt. In dieser Datei sind die Druckerspezifischen Optionen definiert, und die rechnerbezogenen Standardeinstellungen werden hier abgespeichert. Daneben wird hier der Druckertreiber referenziert. Falls keiner angegeben ist wird Postscript verwendet.
  • Verbindung (Connection,DeviceURI ) für lokale Drucker:?
    • Drucker am parallelen Port:
      z.B. parallel:/dev/lp0
    • USB-Drucker
      z.B. usb://HP/LaserJet%20P2055dn?serial=M7208JT
      z.B. hp:/usb/HP_LaserJet_P2055?serial=M7208JT (HP-USB-Treiber)
    • in Datei:
      z.B. file://dev/null
  • Verbindung (Connection,DeviceURI ) für Netzwerkdrucker:
    • Socket (Das AppSocket protocol ist das einfachste, schnellste, und im allgemeinen das zuverl?ssigste Netzwerkprotokoll das für Drucker verwendet wird.):
      z.B. socket://hostname:9100
    • IPP-Druck (synonyme: ipp,ipps,http,https). bwin娱乐_bwin娱乐官网欢迎您@ wird CUPS-Intern verwendet, als auch zur Weiterleitung an andere CUPS/iPrint-Druckserver
      z.B. ipp://hostname:631/ipp/queue
    • Samba-Druck zu Windows Rechner:
      z.B. smb://smb.example.com/printer
    • Druck zu iPrint-Server:
      z.B. iprint://gutenberg1.uni-regensburg.de/ipp/rzdrfarbe100g

Konfigurations-, Log- und Systemdateien

/etc/cups/cupsd.conf Zentrale Konfiguration des Cupsservers
/etc/cups/printers.conf Hier stehen die installierten Drucker mit Optionen
/etc/cups/ppd/.ppd Druckerbeschreibung mit standard Druckereinstellungen

/var/log/cups/access_log
/var/log/cups/error_log
/var/log/cups/page_log

Log Dateien
/usr/lib/cups/backend/ Cups-Backend Dateien (z.B. socket oder iprint)
/usr/lib/cups/filter/ Cups-Filter (z.B. pdftops oder texttops )

iPrint-Integration in CUPS und lokale Konfiguration:

verfügbare iPrint-Drucker an der Uni-Regensburg und iPrint-Client.

Bei der Installation des iPrint-Client ein zus?tzliches Backend in den lokalen CUPS-Server installiert. Das lokale Cups wird weiterhin verwendet, nur für die "iPrint-Drucker" wird ein anderes Backend für den Transport zum iPrint-Server? verwendet. Daneben wird beim Login ein kleiner Process (iprint-listener) gestartet, der die Passwort-Abfrage erledigt (siehe Architektur).

Warum iPrint Client: im Prinzip wird das iprint-Backend nicht zwingend ben?tigt, jedoch hat das Altenative ipp-Backend fogende Nachteile:

  • Passwortabfrage ist pro Drucker, nicht einmal an allen Druckern aller iPrint-Servern (eines NDS-Baums).
  • ipp versucht bei abgelaufenem Passwort je Drucker 6 mal das falsche Passwort ->?Account wird wegen zu vieler falscher Pass?rter vorübergehend gesperrt.
  • Die Passwortabfrage muss vom Client-Programm schon erfolgen. Nicht alle Programme (Java-Print, xmgrace, Acrobat Reader) unterstützen dies.

Lokale Konfiguration (Standard Einstellungen) eines iPrint-Druckers:

  • Bei der Installation eines iPrint-Druckers wird vom iPrint-Server eine Drucker-Beschreibung (PPD) mitgeliefert, die schon Default Konfigurationen beinhaltet. bwin娱乐_bwin娱乐官网欢迎您@e Defaultkonfiguration kann auf Anfrage im RZ ge?ndert werden (wenn für alle Rechner interessant).
  • Wie auch bei einem lokaler Drucker k?nnen auch bei einem iPrint-Drucker die standard Einstellungen angepasst werden (z.B. Duplex). Einfach im Webinterface: Printers -> Druckername -> Administration/Set Default Options


  1. Universit?t

Hilfe & Support

Servicedesk

Anfrage stellen

+49 941 943-5555


?ffnungszeiten

Mo-Do: 8.00 bis 17.00 Uhr

Fr: 8.00 bis 14.00 Uhr

Raum: RZ 0.02