Drucken im URZ
0. Allgemeines
1. Drucker
1.1 Typen
1.2 Anschlüsse
1.3 Administration
2. Druck-Jobs
2.1 Text
2.2 Postscript
2.3 andere Formate
2.4 PJL
3. Print Spooling
3.1 lpr
3.2 LPRng
3.3 Administration
3.4 Accounting
4. Druckkonzept des URZ
5. Vorschläge zur Weiterentwicklung
-
Bedarf nach gedruckten Dokumenten wächst trotz interaktiver Möglichkeiten
(Angaben in Klammern betreffen Studenten)
| 1997 |
91728 (60179) Jobs |
35200 (14300) Einh. |
| 1998 |
121800 (86900) Jobs |
37000 (18400) Einh. |
-
Anforderungen an Drucktechnik wächst ebenso: z.B. Kapazität,
Geschwindikgeit, Qualität, ...
-
A3 Color, duplex, Papiergewicht bis 160mg, ...
-
schnelle Entwicklung neuer Drucker: große Preisunterschiede, Netzanforderungen
sind preisintensiv ?
-
Weiterentwicklung der Dokumentsprachen: Adobe Postscript, PDF, PCL, IPP,
...
-
Drucker an beliebigen Rechnern mit unterschiedlichsten Betriebssystemen
lokal (seriell - parallel) oder remote zugreifbar
-
Problem: sicheres, effektives Betriebskonzept
hier: betrachten nur netzwerkfähige Lösungen (Drucker, Spooling)
-
keine Standards !
-
Textdrucker (problematisch: Formate, Steuerinformationen, Zeichensatz,...)
-
Plotter, Raster Druck, Xerography (Laser Printer)
-
Laserjet (Postscript), Deskjet
-
HP, Apple, Lexmark, ...
-
Drucker im URZ
-
lokale Drucker: seriell, parallel
-
Netzwerk: IPX, Netbui, TCP/IP (Port 9100)
-
Hybrid-Lösungen: Print Server, Dumb Server (Account)
-
HP Jetdirect: BOOTP/DHCP, JetAdmin
-
Statusabfragen per SNMP: (HP Openlook, SunNetManager, ... kommerziell !)
-
lokale Konfiguration über Front Panel
-
BOOTP/DHCP (T144="hpnp/urz.cfg")
-
jetadmin: für HP-Jetdirect-IF
(interne Netzkarte)
-
SNMP: die meisten Drucker haben SNMP-Agent (Printer MIB) - leider sehr
different
-
FORDERUNG: TCP/IP und DHCP-fähig, asynchroner Betrieb, Pagecounter-Abfrage
-
ursprüngliche Ausgabeform
-
Vintage-Printer: feste Zeichengröße, 132 (80) Spalten - 66 Zeilen,
herstellerabh. Zeichensatz, Papierformate Letter, A4, Leporello (11x15
inches), ...
-
Antiques: Zeichensatz, Fonts, Steuerzeichen, Internationalisierung, ...
(Kopien !)
-
besser: Konvertierung in geeignete Druckersprache: a2ps
-
eine stack-orientierte Programmiersprache; entwickelt 1975-80
-
muß man eigtl. nicht kennen !
-
Erweiterungen um bestimmte Steueranweisungen
für Drucker
-
Entwicklung bei Adobe: www.adobe.com : de facto
Standard
-
ghostscript: PD
Interpreter für PostScript und PDF
-
weitere Informationen:
-
Vorteil: portabel
-
Probleme
-
unterschiedliche Versionen (Programme, Treiber, Interpreter)
-
Drucker brauchen Speicher (ggf. mehr !)
-
Interpreter-Fehler
-
Seitengenerierung aufwendig und langsam (Accounting)
-
begrenzte Diagnosemöglichkeiten (ghostscript)
-
Tools
-
print (an TU Chemnitz)
-
gs, gv, pgcnt, ps2ps, ...
-
PS Utilities: psnup, psrev, ...
-
PS Fixer
-
kommerzielle SW zur Dokumentsteuerung (Fachauswahl, Formulare, Fonts, ...)
-
PPD: Postscript Printer Description -
Beschreibung der Postscript-Steuer-Optionen je Drucker
(Hersteller nicht zur Bereitstellung verpflichtet)
-
HP PCL: Printer Command Language (z.Zt. Version 6)
-
kleinere Files und schnellere Verarbeitung
-
spezifische Kommandos für jeden Drucker (nicht portabel)
-
schwer zu analysieren und zu bearbeiten
-
in den letzten Jahren Entwicklung zu großer Leistungsfähigkeit
-
PDF: Portable Document Format: neuerdings können Drucker PDF direkt
drucken - PDF entsteht aus Postscript bzw. PCL über einen Converter
-
übergeordnete Steuersprache für Drucker
(kann im Druckdokument überschrieben werden)
-
Steuerung von Papierformaten, Orientierung, Vorlagen, Ein-/Ausgabe-Fächern,
Sprachen
-
liefert Statusnachrichten und Pagecounter Informationen
-
liefert umfangreichen Satz von Error Messages (Fehlerbehandlung !)
-
funktionales Reset: ^[%-012345XPJL EOF (setzt Drucker in Grundzustand)
-
lp (SVR4) : proprietäre Lösung (HP; SUN)
-
Novell Netware (IPX (over TCP))
-
Spooling CLient: REDIRECTOR
-
Mngmnt: Admintool
-
Configuration über Database
-
Microsoft SMB (Netbui - IPX)
-
Spooling CLient: REDIRECTOR
-
Mngmnt: Control Panel
-
Configuration über Registry
Zentrale Frage: wann fällt Entscheidung welches Dokument auf welchem
Drucker zu drucken ist ?
Unterschiedlicher Ansatz: early (Windows-Treiber) / late Binding (Output-Filter)
Problem: allgemeingültige Dokumente (Internet)
-
Standard in RFC1179 unbefriedigend: IETF --> IPP
-
Server lauscht an Port 515, Client arbeitet mit Ports 721-731:
-
LPR: transfer Jobs
-
LPQ: get queue status
-
LPRM: remove Jobs
-
Client erzeugt Control-File, das mit dem Datenfile zum Server (Drucker)
übertragen wird (dazu sind root-Rechte notwendig: Problem Sicherheit
!)
-
Filter: Trennseite (OF), Textkonvertierung (IF), Formatkonvertierung (XF)
-
LPR next generation
: Patrick Powell (AStArt
Technologies)
-
bessere Flexibilität (logging, Debugging, Accounting, Management,
Security, ...)
-
Erweiterung RFC1179: LPC remote
-
Lightweight Clients: kein Client-Spooling (direkter Transfer zu Server)
-
Lightweight printcap: lp=prqueue@host%515, lp=printer%9100
-
bessere Sicherheit: lpd.perms, keine root-Rechte notw., Beseitigung von
Sicherheitslücken
-
Filter: psfilter (allg. Postscript Filter), apsfilter (autom. Typerkennung),
ifhp (für HP Drucker)
-
... weites Feld ... interessante Mailing-Liste
majordom@iona.com
-
Verwaltung der Spool-Queues und der Drucker
-
lpq aus LPRng recht komfortabel
-
lpc aus LPRng kann remote Queues managen
-
im URZ-Nutzerservice xlp ist Tcl/Tk Frontend auf spooler
-
jetadmin zur HP-Drucker Konfiguration
(manuell (telnet))
-
WEB-Jetadmin: von HP bereitgestelltes WEB-Interface zu jetadmin
-
lpinfo aus LPRng-Paket
-
FORDERUNG: gesicherter Zugang zu Druckern: Paßwortschutz und Host-Access
-
basiert auf der Fähigkeit der Drucker, ihren HARDWARE-Pagecounter
anzuzeigen
-
LPRng bietet Account-Interface mit DB-Zugang
-
sicherer Umgang mit Account-Informationen (kriminelle Energie unterbinden)
-
keinesfalls Daten per NFS exportieren
-
regelmäßige Sicherung der Accountdaten (stündlich temporär)
-
Behandlung undef. Jobabbrüche: "record last dead hjob"
-
Umgang mit "Ausschuß" klären: Fehlverhalten, Zufall, unerwartet
Ereignisse
-
Problem viel Aufwand - wenig Nutzen ?
-
Druckkommando print
-
Nutzung des originalen lpr-Konzeptes
-
zentraler Print-Server (spooler) : single point of failure
-
Postscript ist zentrale Druckersprache (Pre-Scanning: pgcnt)
-
Nutzung der Output-Filter zu Analyse und Accounting, nicht Konvertierung
-
Umwandlung der Originalformate in Postscript durch Nutzer (print, PS Utilities,
Latex, WWW, Anwendungsprogramm (Office, Word, Corel, xv, ...), Konvertierungswerkzeuge,
...
-
Berechnung der Seitenanzahl mittels pgcnt: unzuverlässig !
-
zusätzl. Auswertung des Pagecounters für öffentliche Drucker
-
Pool-Drucker, dix, raffael
-
Lexmark cranach: Problem asynchronen Betrieb einstellen
-
Apple duerer: AppleTalk-Schnittstelle momentan nicht analysierbar (Filter
?)
-
PrintServer können PageCounter nicht liefern !
-
Abrechnung durch DB++-Schnittstelle
in
Output-Filtern
-
interface-Programm ist Shell-basiert: uneffektiv
! (mehrfaches Spoolen und grep)
-
vorh. Druckertypen: HP Laserjet und Deskjet, QMS PS, Lexmark und Apple
Color Writer
-
wichtigste Probleme:
-
Fehler bei Postscript-Interpretation im Drucker: Abbruch oder Müll
-
widersprüchliche Pagecounter (Timeout/Fehler)
-
fehlerhafte Postscript-Files (Treiber/Versionen) - blockieren ggf. Queue
-
Ressourcen-Probleme (zu kleine Spool-Bereiche; zu wenig RAM)
-
weitere Informationen:
-
Konzept-Disskussion im URZ
-
FAQ zum Thema Drucken (allg. / intern)
-
spooler basiert auf SunOS 4.x - Out of Date
-
in den letzten Jahren hat sich LPRng Software durchgesetzt (vor allem an
UNIs)
-
Nutzung Linux Server spuler (Redhat) als Print-Spooler, ggf. mehrere in
Abh. von Druckerqueue
-
öffentliche Workstation arbeiten als Light Weight Clienten ohne lokales
Spooling
-
Linux Spooler steuert Abrechnung ohne Pre-Scanning - ggf. Nutzung Dumb-Spooler
- evtl. große Aufträge separat (parallel) berechnen
-
Arbeitsplatzrechner drucken evtl. direkt mit Auswertung Printer MIB (RFC
1759)
-
DB-Interface wird vor dem Drucken nach Kreditguthaben abgefragt
-
nach dem Drucken erfolgt Auswertung des Pagecounters: im Job und physisch
-
Pagecounter wird je Drucker separat (in DB) geführt ?
-
wenn Pagecounter nicht ermittelbar, evtl. separates Pre-Scanning
-
Nutzung eines WEB-Interfaces zur Druck-Job-Admin. (Nutzer und Admins !)
Autor: Matthias Ehrig,
April 1999