Frequently Asked Questions - Drucken im URZ

Das ist eine lose Sammlung von Fragen und Antworten zum Drucken.

Q: Wie druckt man eine Datei ?
A: Unter UNIX mit Kommando print (s. print -h), dvips, gv, netscape-print, acroread, ...
    in Win/NT durch Verbinden eines Druckers: hierbei immer Problem Druckertyp !
    (im URZ auf öffentlichen Druckern wird z.Zt. nur Postscript-Druck unterstützt)

Q: Welchen Weg nimmt mein Druckjob im URZ ?
A: Kommando print --> lokale Spool-Queue (BSD: /var/spool/printers/<queuename> SysV:/var/spool/lp/tmp/<hostname>) --> spooler.hrz:/var/spool/printers/<queuename>--> Aufruf IF-Programm entspr. /etc/printcap durch lpd --> /var/tmp (Account-Programm) --> Drucker per Ethernet (Interface-Programm)

Q: Welche Kommandos gibt es ?
A:

print -Pqueue Druckkommando
lpq -Pqueue Anzeige aller Jobs in einer Druckerqueue
lpstat -t Status und jobs aller Druckerqueues
lpstat -pqueue Status einer Druckerqueue
/usr/sbin/lpc status  Statusübersicht BSD (Linux/SunOS)
/usr/ucb/lpc status queue Statusabfrage in Solaris
lprm -Pqueue    job_nr Auftrag abbrechen BSD (Nutzerrechte)
cancel queue-jobnr Auftrag abbrechen SysV (Nummer von lpq)

Q: Wie werden Druckerqueues gestoppt / gestartet ?
A: mittels lpc stop queue bzw. lpc start queue : so können noch Aufträge durch Nutzer abgeschickt werden; nach lpc disable queue ist die betreffende Queue gesperrt (enable gibt dann wieder frei)
beachte: diese Kommandos auf dem spooler haben andere Bedeutung als auf den Klientenrechnern
(Dispatcher bedienen auf dem spooler die Queues mittels xlp)

Q: Wo finde ich speziellere Informationen ?
A: viele Informationen unter /afs/tu-chemnitz.de/admin/printer

diese FAQ
spezielle administrative Hinweise
interne Havarieanleitung (in Postscript)

/afs/tu-chemnitz.de/admin/printer/drinfo - Ausgabe Queues und Ort
/afs/tu-chemnitz.de/admin/printer/drinfo1 - Ausgabe spezielle Account-Infos
/afs/tu-chemnitz.de/admin/printer/drucker_info: Drucker-Description (für spooler)

Q: Wie teste ich, ob Drucker oder spooler im Netz erreichbar sind ?
A: mittels ping name (Druckername oder spooler) (...)
Achtung: Die Namen der Drucker und der Queues sind nicht immer identisch - bei allen Druckern, deren Name nicht mit der Queue übereinstimmt, steht der Name des Druckers auf dem spooler im File /etc/drucker_info (z.B. raffael_a3 und klee)
Wichtig: beim Einschalten eines Druckers muß Netz da sein (BOOTP !)

Q: Wie prüfe ich die Druckbarkeit eines Files ?
A: 1. gv filename ; 2. pgcnt filename  (liefert Anzahl der Seiten: bei 0 nichtdruckbar !)

Q: Welche Aktionen laufen auf dem Druckserver (spooler) ab ?
A:

  1. der Prozeß lpd kommuniziert mit den Klienten und schreibt das zu druckende File nach /var/spool/printers/queue/dfAjobnrhost
  2. lpd start Kindprozeß lpd, der Ausgabe steuert (sequentiell je Job)
  3. Start des Interfaceprogramms entspr. Drucker (s. /etc/printcap) : i.allg. /var/spool/lpd/interface.xxx (das ist das Accountprogramm)
    1. Auswertung /etc/drucker_info
    2. Kopieren nach /var/tmp/druckdatenlpdpid
    3. Analyse diese Files mittels gscnt, grep, ... Berechnung Seitenanzahl
    4. Abfrage Nutzer-DB (ruprecht)
    5. Datenübertragung zu Drucker (Interfaceprogramm hpnpf ...
Q: Wo finde ich Abrechnungsinformationen
A: spooler:/var/spool/lpd/acct (/var/tmp/seitenzaehler.log) und auf ruprecht in Datenbank
    Kontrollinformationen: /var/tmp/seitenzaehler.log

Q: Wie sehe ich, ob ein Drucker gedruckt hat ?
A: Mit dem Programm seitenzaehler drucker auf dem spooler (vor und nach der Ausgabe)

Q: Was ist ein Printserver ? Wo ist Unterschied zu Netzkarte ?
A: als Printserver sind bei uns kleine Kästchen im Einsatz, die Netzinterface auf Parallelschnittstelle des Druckers umsetzen. Unterschied zur Netzkarte ist, daß über die Prinserver keine Druckereigenschaften abfragbar sind (z.B. seitenzaehler).

Q: Wie werden Druckereigenschaften in Druckersprachen abgebildet ?
A: am Beispiel HP Laserjet (raffael)

Druckersprachen: Postscript, PCL, ... PJL (Printer Job Language)
Steueranweisungen in Postscript (Beispiele): Sprache im ASCII-Format. Formatbeschreibung in Pixel als x/y-Koordinaten ab linker unterer Ecke:
%!    %% Beginnerkennung for Postscriptdokument
%% Kommentare: siehe ein Beispiel (Creator, Title, CreateDate, ...)
<</PageSize [842 1191] /ImagingBBox null>> setpagedevice    %% A3
<</PageSize [595 842] /ImagingBBox null>> setpagedevice    %% A4
<</Duplex true /Tumble false>> setpagedevice    %% doppelseitig
<</ManualFeed false /MediaPosition 1>> setpagedevice    %% Eingabefach 1
<</Staple 0 /OutputType (TOP OUTPUT BIN)>> setpagedevice    %% oben
showpage    %% Anstoßen der Ausgabe einer Seite
%%Page: 1  1   %%Seitenkommentare

Steueranweisungen in PJL (Beispiele):

^[%-12345X@PJL JOB    %% PJL Begin
@PJL SET RESOLUTION = 600    %% 600 dpi -- Problem pgcnt !
@PJL ENTER LANGUAGE = POSTSCRIPT    %% Sprachauswahl
@PJL SET COPIES = 5    %% Kopien einstellen
^[%-12345X@PJL EOJ    %%PJL Ende
Q: Wie stelle ich einen Druckerdriver im NT ein ?
A: möglichst alle druckerspezifischen Angaben auf Standard oder automatische Auswahl !
Wichtig ist Auswahl raffael_a3 (bzw. analoge Queue) bei Angabe Seitengröße A3 !

Q: Was kann ich tun, wenn ein File mit gv o.k. ist aber nicht gedruckt wird ?
A: bestimmte Postscriptformate sind auf den Druckern nicht ausgebbar:

(%%[ Error: undefined; Offending Command: ...)

Es gibt in der ghostscript-Version ab 5.50 ein Kommando ps2ps, das relativ zuverlässig solche Files, die sich mit gv ansehen lassen in eine druckbare Form verwandeln:
ps2ps    inputfile    outputfile

Vor allem bei Ausgaben in StarOffice treten diese Probleme verstärkt auf und sind durch Abspeichern in eine Datei und Umwandlung mit ps2ps lösbar.

Q: Warum bricht mein Druckauftrag auf manchen Druckern mittendrin ab ?
A: Das kann natürlich viele Ursachen haben. In letzter Zeit gibt es häufig Fälle, bei denen im Text das Zeichen ^D (Control-D) enthalten ist. Dieses Zeichen kann man mit einem Editor einfach löschen und dann den Druck nochmal probieren. Unempfindlich gegen dieses Zeichen ist z.B. klee

Q: Wie kann ich Kopien drucken ohne Separatorseite
A: Drucker erzeugen ihre Kopien seitenweise. Das sollte man sich zuerst überlegen. Daher wurde im print-Kommando die n-Option (für Kopien) so realisiert, daß die Jobs sequentiell zu den Druckern übertragen werden. Unter Solaris und Linux-RH52 unterstützt das print-Kommando eine Option -N, mit der versucht wird, dem Drucker die Anweisung zum Erzeugen von Kopien mitzuteilen. Die macht aber i.allg. nur Sinn beim Druck einzelner Seiten.



Matthias Ehrig; Februar 1999
letzte Änderung: Februar 1999