HELIOS EtherShare 2.6 Benutzerhandbuch


11 Der Druckserver
11.1 Generelle Bemerkungen
Dieses Kapitel beschreibt den Druckserver und seine Funktion, Konfiguration und seinen Betrieb. Danach folgen Hinweise zur Installation, Konfiguration und zum Betrieb von Druckern.
11.2 Die Schnittstellen des Druckservers
Wie im Folgenden ausführlich beschrieben ist, unterstützt der EtherShare-Druckserver fünf verschiedene Ausgabeschnittstellen sowie die Möglichkeit, den aufgelösten Druckauftrag auf die Festplatte zu schreiben. Er kann als eine Art Vermittlungsstelle für Druckerverbindungen betrachtet werden, wie in Tabelle 1 dargestellt ist:
Tabelle 1: Eingabe- und Ausgabeoptionen des Druckservers
Eingabemöglichkeiten
Druckauftrag kommt über:
Ausgabemöglichkeiten
Unterstützte Druckerarten:
AppleTalk
AppleTalk
Seriell
UNIX "lpr"
TCP/IP-Datenstrom
remote "lpr" über TCP/IP
Remote LPR
Shared Memory
Auflösen und in Datei drucken

Passende Konfigurationen ermöglichen die Verwendung jeder Kombination der Eingabe- und Ausgabeoptionen.
11.3 Die Programme des Druckservers
Der Druckserver besteht aus den Programmen "papsrv", "psof", "papif", "psif", "tcpif", "shmif", "diskif", "holdif", "balanceif" und "psresolve". Sie werden während der Installation in dem Verzeichnis "$ESDIR" angelegt. In Verbindung mit den Programmen "lpr", "lpd" und "mail" des UNIX-Systems erfüllen die Programme die Aufgabe, Druckaufträge zu verarbeiten, die über AppleTalk empfangen wurden. Anschließend leiten sie die Druckaufträge an gemeinsam genutzte Drucker weiter, welche entweder über eine Ethernet-, TCP/IP-, "Shared Memory"- oder serielle Schnittstelle mit dem UNIX-Host verbunden sind. Der Host ist normalerweise so konfiguriert, dass das Programm "papsrv" automatisch startet, wenn das UNIX-Betriebssystem hochgefahren wird.
Der Druckserver von EtherShare basiert auf dem BSD-Drucksystem. Wenn Ihr Host das System V-Drucksystem verwendet (z.B. Sun Solaris 2.x), verwendet der Druckserver automatisch sein eigenes BSD-ähnliches "lpr"-Programm, welches für solche Fälle im "$ESDIR"-Verzeichnis bereitgestellt wird.
Tabelle 2: Schnittstellenprogramme der Drucker
Treiber
Beschreibung
papif
Schnittstellenprogramm für AppleTalk-Drucker (gemäß Printer Access Protocol, PAP)
psif
Schnittstellenprogramm für seriell angeschlossene Drucker
tcpif
Schnittstellenprogramm für TCP/IP-Datenstrom-
& Remote LPR-Drucker
shmif
Schnittstellenprogramm für Shared Memory
diskif
Schnittstellenprogramm für "In-Datei-drucken"
holdif
Schnittstellenprogramm für Hold-Warteschlangen
balanceif
Schnittstellenprogramm für Balance Gruppe-Warteschlangen
psresolve
Pseudo-Schnittstellenprogramm zur Ausgabe ohne das Programm "lpd"

papsrv
Das Programm "papsrv" implementiert die Printer Access Protocol-(PAP)-Funktionen für den Druckserver. PAP wird in AppleTalk-Netzwerken für die Kommunikation mit den meisten Druckertypen und Druckservern verwendet. Nachdem das Programm "papsrv" gestartet wurde, überwacht es kontinuierlich das AppleTalk-Netzwerk auf Druckanfragen. Ein ankommender Druckauftrag wird zunächst im UNIX-Dateisystem gespeichert, bevor er an das UNIX-
Systemprogramm "lpr" weitergeleitet wird. Dieses transferiert den Druckauftrag an das Programm "lpd", welches das passende Schnittstellenprogramm ("papif", "psif", "tcpif", "diskif", "holdif", "balanceif" oder "shmif") und den optionalen Ausgabefilter ("psof") aufruft. Das Schnittstellenprogramm leitet den Druckauftrag dann an den Drucker weiter (siehe Tabelle 2).
Für jede Drucker-Warteschlange auf Ihrem Host wird ein separater "papsrv"-Prozess gestartet.
psof
"psof" ist das so genannte Ausgabefilter-Programm, das für die Erzeugung der Titelseite (engl. Banner) als PostScript-Druckauftrag zuständig ist (für Drucker ohne PostScript-Unterstützung wird kein Banner erzeugt). Eine Titelseite enthält Informationen über den Druckauftrag wie beispielsweise Benutzername, Uhrzeit und Dokumentenname. Die Titelseite kann optional vor dem eigentlichen Druckauftrag ausgegeben werden. Sie ist hilfreich, um einen Stapel von Ausdrucken zu sortieren, wie er entstehen kann, wenn mehrere Benutzer zur gleichen Zeit gedruckt haben. "psof" wird automatisch vom UNIX-Programm "lpd" zu Beginn jedes Druckauftrags aufgerufen und legt einen Banner an, wenn dies mit dem Schalter "banner" in der Konfiguration des Druckers festgelegt wurde ("banner" setzt die Markierung "sh" (suppress headers) in der Datei "printcap"). Die Titelseite wird entweder aus einer PostScript-Datei generiert, die in dem jeweiligen Schnittstellenprogramm "*if" (z.B. "papif") enthalten ist oder aus der Datei "BANNER" im Spool Verzeichnis des jeweiligen Druckers. Wenn die Datei "BANNER" existiert, dann hat sie Vorrang. Die folgenden Steuerzeichen ("Variablen") in der Banner-Datei werden automatisch von Informationen des aktuellen Druckauftrags ersetzt (Weitere Informationen finden Sie im Abschnitt Benutzer- und Dokumentnamen in Druckaufträgen in A 7.1 "EtherShare-Logdateien").
^U Der Benutzer, der den Druckauftrag abgeschickt hat
(aus dem PostScript-Kommentar "%%For")
^T Die aktuelle Uhrzeit
^N Der Dateiname des Dokuments
^C Die Anzahl der Seiten des Druckauftrags
^P Der logische (UNIX-) Name des Druckers
(aus der Datei "printcap")
^H Name des Host-Computers
^n UNIX-Name des Druckauftrags
^u UNIX-Benutzer-ID (Name für UNIX-Anmeldung)
Bitte beachten Sie, dass die Sequenz "^U" in der oben aufgeführten Liste nicht für die Kombination "ctrl"-Taste + "U" sondern für die zwei Zeichen "^" und "U" steht.
Über das Auswahlfeld Titelseite in EtherShare Admin (setzt die Markierung "sh" in der Datei "printcap") können Sie festlegen, ob der Drucker eine Titelseite vor dem eigentlichen Druckauftrag ausdruckt oder nicht.
papif
"papif" ist das Schnittstellenprogramm für Drucker, die Apples Printer Access Protocol (PAP) unterstützen und über AppleTalk mit dem Druckserver verbunden sind.
"papif" wird für alle PostScript-PAP-Drucker (einschließlich Belichter), dem Apple Image Writer II und Image Writer LQ verwendet.
Der Druckserver verarbeitet Druckaufträge, die er von einer Arbeitsstation im Netzwerk empfängt, und reiht sie in eine Warteschlange ein, bevor er sie wieder über das Netzwerk an den PAP-Drucker schickt.
Aufgrund des Warteschlangen-Konzepts für Druckaufträge ist es effizienter, AppleTalk-Drucker über den Druckserver anzusprechen, als direkt vom Arbeitsplatz aus auf sie zuzugreifen. Dementsprechend sollten Benutzer die Drucker-Warteschlange und nicht direkt den Drucker, der über die Warteschlange angesteuert wird, in der Auswahl am Macintosh aktivieren. Wir empfehlen Ihnen, den Namen der Drucker-Warteschlange für die Auswahl so festzulegen, dass zu erkennen ist, welcher Drucker darüber angesteuert wird und dass es sich um eine Warteschlange und keinen physischen Drucker handelt. Hängen Sie beispielsweise den Zusatz "Spooler" an den Namen des Druckers.
"papif" bildet die Verbindung zwischen dem Programm "lpr" und PAP-Druckern.
psif
"psif" ist das Schnittstellenprogramm für PostScript-Drucker, die über die serielle (RS-232-C) Schnittstellen direkt an den UNIX-Host angeschlossen sind. Wegen der geringen Datentransferraten empfehlen wir, unter normalen Bedingungen keine seriell angeschlossenen Drucker für die Ausgabe aus Desktop-Publishing-Programmen zu verwenden.
"psif" bildet die Verbindung zwischen dem Programm "lpr" und seriell angeschlossenen Druckern.
tcpif
"tcpif" ist das Schnittstellenprogramm für PostScript-Drucker, die das TCP/IP Datenstrom-Protokoll unterstützen. Es wird außerdem für Drucker verwendet, die über das Remote LPR-Protokoll verbunden sind. TCP/IP Datenstrom-Drucker müssen mit der EtherShare TCP/IP Datenstrom-Implementierung kompatibel sein - bitte kontaktieren Sie den Hersteller Ihres Druckers oder Ihren HELIOS-Lieferanten, wenn Sie sich dessen nicht sicher sind. "TCP/IP Datenstrom" hat "Remote LPR" gegenüber bedeutende Vorteile - Lesen Sie dazu später mehr.
Der Druckserver verarbeitet Druckaufträge, die er von einer Arbeitsstation im Netzwerk empfängt, und reiht sie in eine Warteschlange ein, bevor er sie über TCP/IP an den Drucker schickt.
"tcpif" bildet die Verbindung zwischen dem Programm "lpr" und TCP/IP-Druckern.
diskif
"diskif" ist das Schnittstellenprogramm, um Dateien auf die Festplatte zu drucken. Dies kann nützlich sein, wenn Sie beispielsweise PDF-Dateien automatisch erzeugen wollen. In diesem Fall können Sie in einem bestimmten UNIX-Verzeichnis in Dateien drucken und die Acrobat Distiller-Software anweisen, den entsprechenden Ordner regelmäßig zu überprüfen und eingehende PostScript-Dateien in PDF-Dateien umzuwandeln.
"diskif" bildet die Verbindung zwischen dem Programm "lpr" und der Festplatte, auf die die Druckaufträge ausgegeben werden.
holdif
"holdif" ist das Schnittstellenprogramm, das Sie verwenden müssen, um Druckaufträge zu "speichern", die in einer beliebigen Warteschlange verarbeitet wurden. "holdif" kann beispielsweise so konfiguriert werden, dass fehlerhafte Druckaufträge an eine bestimmte Hold-Warteschlange ("Fehler"-Warteschlange) geleitet werden und aufgelöste Druckaufträge an eine andere ("Halten"-Warteschlange). Die Haltezeit kann im Drucker-Konfigurationsfenster in EtherShare Admin (siehe Hold-Queue Verbindung in 5.10 "Drucker-Liste") festgelegt werden. Die Haltezeit ist die Zeitdauer, die ein Druckauftrag in der "Halten"- bzw. der "Fehler"-Warteschlange gespeichert wird.
"holdif" bildet die Verbindung zwischen dem Programm "lpr" und den Halten-/Fehler-Warteschlangen.
balanceif
"balanceif" ist das Schnittstellenprogramm für Drucker-Warteschlangen, die untereinander verbunden sind, um die Last von Druckaufträgen zu verteilen. Weitere Informationen über "balanceif"-Einstellungen lesen Sie bitte in Balance Gruppe-Verbindungen in 5.10 "Drucker-Liste" nach.
"balanceif" bildet die Verbindung zwischen dem Programm "lpr" und den für die Lastverteilung ausgewählten Drucker-Warteschlangen.
shmif
"shmif" ist das Schnittstellenprogramm für PostScript-Interpreter (Software-RIPs), die auf demselben Host laufen und über eine "Shared Memory"-Schnittstelle angesteuert werden können. Das RIP muss zu der EtherShare "Shared Memory"-Schnittstellenspezifikation kompatibel sein - bitte kontaktieren Sie den Hersteller Ihres RIPs oder Ihren HELIOS-Lieferanten, wenn Sie sich dessen nicht sicher sind.
Der Druckserver verarbeitet Druckaufträge, die er von einer Arbeitsstation im Netzwerk empfängt, und reiht sie in eine Warteschlange ein, bevor er sie über ein gemeinsames "shared memory"-Segment an das RIP übergibt.
"shmif" bildet die Verbindung zwischen dem Programm "lpr" und Software-RIPs.
Konfiguration
Für jeden Drucker, der Druckaufträge vom Druckserver erhalten soll, muss eine eigene Kopie eines Schnittstellenprogramms gestartet werden. Jede Kopie erfordert einen individuellen Eintrag in der zentralen Konfigurationsdatei "atalk.conf", in dem unter anderem der eindeutige AppleTalk-(NVE)-Name, den Typ und die Zone der Drucker-Warteschlange festgelegt wird.
Die Datei "atalk.conf" darf nicht mehr als einen Eintrag pro Namen haben (d.h. der Name der Drucker-Warteschlange muss sich immer von dem des physischen Druckers unterscheiden), anderfalls könnte der Druckserver bei der Ansteuerung eines bestimmten physischen Druckers nicht auf eine eindeutige Konfiguration zugreifen. Daher ist es erforderlich, das Schnittstellenprogramm jeweils mit einem neuen Namen für jeden zusätzlichen Drucker zu starten.
Aufgrund interner Regeln bekommt eine Kopie des jeweils geeigneten Schnittstellenprogramms ("papif", "tcpif" oder "shmif") immer den Namen des logischen (UNIX)-Druckers, auch wenn nur ein Drucker von dem Schnittstellenprogramm angesteuert wird. Die Datei "atalk.conf" enthält dann einen separaten Eintrag für jeden Drucker (z.B. "Laser1" und "Laser2") jedoch keinen Eintrag mehr für das Schnittstellenprogramm selbst.
Während der Druckerkonfiguration werden diese neuen Namen mit Hilfe des Programms "ln" mit den Schnittstellenprogrammen verknüpft. Damit lässt es sich vermeiden, mehrere physische Kopien des Programms auf der Festplatte anlegen zu müssen.
11.4 Der Druckserver im Betrieb
Jeder Druckauftrag besteht aus den Druckdaten selbst und einer oder mehreren so genannten "Prep"-Dateien (unterschiedliche PostScript-Druckverfahren und -Funktionsverzeichnisse (engl. Dictionary), auch als Kontrolldateien oder "Inits" bezeichnet), die den Druckdaten vorangestellt werden. Es kann auch notwendig sein, benötigte Schriften und eine Titelseite an den Drucker zu schicken.
Das den Druckauftrag ausgebende Programm (zumeist der Druckertreiber der Applikation an der Arbeitsstation) stimmt über das PAP-Protokoll mit dem Druckserver automatisch ab, welche "Prep"-Dateien vor Beginn der eigentlichen Ausgabe an den Drucker gesendet werden müssen. Nachdem die "Prep"-Dateien das erste Mal von der Arbeitsstation an den Drucker gesendet wurden, werden sie automatisch vom Druckserver in das so genannte "Prep-Verzeichnis" ("$ESDIR/dicts") kopiert. Dieser Vorgang wird "Dictionary caching" (etwa "Vorhalten von Funktionsverzeichnissen") genannt.
Bei erneutem Bedarf können die "Prep"-Dateien dann direkt vom UNIX-Host auf den Drucker übertragen werden. Dies reduziert die Netzwerkbelastung, da der Transport von der Arbeitsstation auf den Server entfällt) und steigert somit den Durchsatz. Lesen Sie bitte 11.7 "Adobe Document Structuring Conventions" für weitere Informationen.
Schriften
einbinden
Für einen bestimmten Druckauftrag benötigte Schriften, die auf dem Drucker nicht fest installiert sind (herunter zu ladende PostScript-Schriften), müssen ebenfalls in jedem Druckauftrag eingebettet werden, bevor dieser an den Drucker gesendet wird. Um den Druckserver wissen zu lassen, welche Schrift er senden soll, wird eine Liste der in einem Drucker fest installierten Schriften in der Datei "FONTS" im Spool Verzeichnis des Druckers hinterlegt (normalerweise "/usr/spool/<printername>/FONTS").
Außerdem können Sie in EtherShare Admin Adobe
"Type 1"- und "Type 3"-Druckerschriften (keine Bildschirm- und TrueType-Schriften) direkt von dem original Schriftenmedium (z.B. einer CD-ROM) des Herstellers in ein zentrales Schriften-Verzeichnis auf dem Host ("$ESDIR/psfonts") installieren. Der Druckserver schickt nur die Schriften an den Drucker, die dort nicht als fest installierte Schriften bereits vorhanden sind. Fehlende Schriften werden bevorzugt aus dem zentralen Schriften-Verzeichnis geladen und nicht auf der Arbeitsstation abgefragt, von dem aus der Druckauftrag abgeschickt wurde. Dies reduziert die Netzwerkbelastung, steigert den Durchsatz und ermöglicht die zentrale Verwaltung von Druckerschriften.
Die Liste der fest installierten Schriften eines Druckers wird automatisch über eine Abfrage des Gerätes generiert, wenn Sie mit dem EtherShare Admin-Programm einen neuen Drucker installieren. Diese Liste muss aktualisiert werden (Befehl Schriften aktualisieren in EtherShare Admin), wenn auf dem Drucker neue Schriften von Schriften-Cartridges, Druckerfestplatten o.ä. installiert wurden.
Wenn Ihr Drucker nicht vollständig kompatibel zu den LaserWriter-Spezifikationen ist und die Schriftabfrage nicht funktioniert, werden automatisch die Standard-Schriftenlisten des Apple LaserWriter und des Apple LaserWriter Plus verwendet. Wenn Sie einen "Remote LPR"-Drucker in EtherShare Admin anlegen, dann werden diese Ersatz-Schriftlisten automatisch in die Datei "FONTS" kopiert, ohne vorher den entsprechenden Drucker zu "befragen". Es kann sein, dass Sie die Datei "FONTS" anschließend manuell editieren müssen, wenn die Liste der verfügbaren Schriften Ihres Druckers von der der Apple-Drucker abweicht.
Sobald das Programm "papsrv" den gesamten Druckauftrag erhalten und bearbeitet hat, wird dieser an das UNIX-Systemprogramm "lpr" weitergeleitet. "lpr" stellt den Job dann in die Warteschlange und übergibt die Kontrolle an das Programm "lpd". Letzteres ist für die Weiterleitung des Druckauftrags an den Ausgabefilter "psof" und das jeweils festgelegte Schnittstellenprogramm (z.B. "papif") verantwortlich. Das Schnittstellenprogramm stellt die Verbindung zu dem Drucker selbst her: Das Programm "lpd" stellt fest, wie der Drucker mit dem Server verbunden ist, indem es in der Systemdatei "/etc/printcap" den Eintrag für den Drucker überprüft. In dem jeweiligen Eintrag in der Datei "/etc/printcap" ist auch festgelegt (mit dem Schalter "sh", suppress headers), ob eine Titelseite ("Banner") benötigt wird. Bei Bedarf wird die Titelseite von dem Programm "psof" als PostScript-Code erzeugt und vor dem Druckauftrag ausgegeben.
Das angegebene Schnittstellenprogramm bindet die benötigten Schriften ein und löst alle Referenz zu externen Bildern auf, wenn Sie die "OPI"-Option installiert haben. Und es ist für die Auflösung aller "%%Include-"-Verweise zuständig (lesen Sie hierzu bitte 11.7 "Adobe Document Structuring Conventions"). Anschließend leitet das Programm den Druckauftrag an den Drucker weiter und wartet auf etwaige Rückmeldungen. Außerdem ist das Programm auch für die Abfrage des Seitenzählers des Druckers vor und nach dem Druckauftrag verantwortlich.
Wenn der Drucker eine Fehlermeldung an den Druckserver zurückmeldet, dann wird diese von dem UNIX-Systemprogramm "mail" an den Benutzer weitergeleitet. Wenn auf dem Macintosh des Benutzer HELIOS Mail installiert ist, dann erscheint die Meldung direkt auf dem Arbeitsplatz. Der Benutzer wird auch über das Programm "afpmsg" benachrichtigt, welches eine Fehlermeldung auf dem Macintosh darstellt. Weitere Informationen finden Sie in der Beschreibung zu mail und clientmessages in 11.6 "Manuelle Druckerkonfiguration" sowie in Benutzer- und Dokumentnamen in Druckaufträgen in A 7.1 "EtherShare-Logdateien".
Verschiedene Arten von Fehlermeldungen wie beispielsweise "Papierkassette leer" oder "Papierstau" werden auch an das Programm "syslog" gesendet. Dieses Programm kann vom Administrator (in "/etc/syslog.conf") konfiguriert werden, um den weiteren Weg festzulegen, den die Meldung nehmen soll (beispielsweise eine Ausgabe an die Konsole). Die ermöglicht schnellste Reaktionen auf Fehlersituationen, die eine sofortige Aufmerksamkeit erfordern.
Wenn der Druckserver feststellt, dass der Drucker den Druckauftrag komplett abgelehnt hat (beispielsweise aufgrund eines Syntaxfehlers im PostScript-Code), dann wird der Rest des Druckauftrags sofort mit einer entsprechenden Fehlermeldung abgebrochen. In Abhängigkeit von den Einstellungen in EtherShare Admin wird der Druckauftrag dann beispielsweise an eine Fehlerwarteschlange weitergeleitet.
Da Druckaufträge temporär im UNIX-Dateisystem gespeichert werden, kann die Druckausgabe zügig von der
Arbeitsstation zum Host geleitet werden, ohne dass das jeweilige PostScript-erzeugende Programm an der Arbeitsstation auf den Drucker warten muss (Spoolfunktion des Servers). Die weitere Verarbeitung des Druckauftrags wird automatisch vom Druckserver ausgeführt, während sich der Benutzer bereits mit anderen Arbeiten beschäftigen kann.
Wie weiter oben beschrieben, speichert der Druckserver alle "Prep"-Dateien im "Prep-Verzeichnis" und überträgt Sie nur dann auf einen Drucker, wenn Sie benötigt werden. Die "Prep"-Dateien werden nicht dauerhaft in dem Drucker gespeichert. Dies ermöglicht das Umschalten zwischen verschiedenen "Prep"-Dateien, die zueinander inkompatibel sind, ohne den Drucker manuell neu starten zu müssen. Der Druckserver fügt die "Prep"-Dateien in einer nicht speicherbaren Form vor dem Druckauftrag ein und sendet die komplette Datei als einen einzigen Druckauftrag an den Drucker.
Die für die Apple LaserWriter 6.0 Druckertreiber bereitgestellten Standard-"Prep"-Dateien sind jedoch dafür vorgesehen, als speicherbare "Prep"-Dateien vor einem Druckauftrag an den Drucker übertragen zu werden. Aufgrund von Problemen in den Standard-Apple "Prep"-Dateien können Fehler auftreten, wenn der Druckserver sie verwendet. Dadurch wird der Druckauftrag eventuell nicht korrekt gedruckt.
Aus diesem Grund sind in EtherShare in dem Verzeichnis "$ESDIR/dicts" modifizierte Versionen der Standard-"Prep"-Dateien für die Treiber "LaserWriter Version 5.2" und "LaserWriter Version 6.0" enthalten. Diese Dateien haben den Namen "_AppleDict_md_68_0" bzw. "_AppleDict_md_70_0". Der Druckserver verwendet automatisch diese modifizierten Dateien anstatt der von Apple veröffentlichten Versionen. Dieses Problem kommt ab Mac OS Version 7.0 und neuer nicht mehr vor, da Apple seine "Prep"-Dateien nicht mehr in speicherbarer Form anlegt. Das Verzeichnis "$ESDIR/dicts" enthält auch ein Linotype und ein HELIOS Funktionsverzeichnis (Dictionary).
Neustart des Druckservers
Wird der Server während der Verarbeitung von Druckaufträgen abgeschaltet, dann müssen Sie unter Verwendung des UNIX-Befehls "lpc restart all" die betroffenen Drucker neu starten. Dies kann auch mit dem Befehl Drucker neustarten in EtherShare Admin geschehen.
restart-pap
Das Shell-Skript "$ESDIR/restart-pap" wird von EtherShare intern verwendet, um alle Drucker-Warteschlangen neu zu starten. Dies ist notwendig, um Änderungen der Druckerkonfiguration in der Datei "atalk.conf" sofort wirksam werden zu lassen, ohne dass das gesamte EtherShare-System neu gestartet werden muss.
11.5 Parameter des Programms "papsrv"
Beim Start greift der Druckserver "papsrv" zuerst auf die zentrale Konfigurationsdatei "atalk.conf" zu, um seine Konfiguration und die Anzahl der verfügbaren Drucker auszulesen. Drucker können bei Bedarf mit einem Editor wie beispielsweise vi eingerichtet werden. Wir empfehlen Ihnen jedoch dringend, dies stattdessen mit EtherShare Admin auszuführen. Lesen Sie bitte auch 5.14 "Manuelles Bearbeiten von "atalk.conf"".
Die im Folgenden beschriebenen Parameter können für jeden "papsrv"-Prozess in der Datei "atalk.conf" definiert werden (bitte beachten Sie, dass der Programmname "papsrv" der Parameterliste vorangestellt wird).
name
name=netname
netname
ist der AppleTalk-(NVE)-Name des Druckservers. Unter diesem Namen ist er im Netzwerk bekannt. Diesen Namen sehen Sie in der Auswahl der Arbeitsstation, wenn Sie das Symbol des Gerätetyps "LaserWriter" anwählen.
type
type=nettype
nettype
ist der AppleTalk-Typ des Druckservers unter dem er im Netzwerk bekannt ist. nettype sollte normalerweise auf "LaserWriter", "ImageWriter" usw. eingestellt sein, da er nur dann von den Standard-Macintosh-Auswahlerweiterungen an den Arbeitsplätzen erkannt wird. Wenn die Arbeitsplätze mit einer späteren Version des Programms LaserWriter ausgestattet sind, die auch andere Druckertypen unterstützt, kann hier bei Bedarf auch ein anderer Typ eingetragen werden.
Die Vorgabe für nettype ist "LaserWriter".
zone
zone=zonename
zonename
ist der Name der AppleTalk-Zone, zu der der Druckserver zugeordnet werden soll. Somit legt dieser Eintrag die Zone fest, in der der Druckserver in der Auswahl am Macintosh angezeigt wird. Die gewählte Zone muss eine der lokalen Zonen sein, mit denen der Server verbunden ist. Wir empfehlen Ihnen dringend, dies unter Verwendung des UNIX-Programms "zones -l" zu testen ("$ESDIR/zones").
Standardmäßig registriert sich das Programm "papsrv" selbständig in der ersten Zone des ersten Netzwerkadapter-Eintrages in der Datei "atalk.conf".
printer
printer=printername
printername
ist der logische (UNIX)-Name des Druckers, an den der Druckserver die Druckaufträge schicken soll. Nach internen Regeln ist dies auch der Name, in den eine Kopie des Programms "papif" oder "tcpif" umbenannt wurde, wenn der Drucker über AppleTalk oder TCP/IP angeschlossen ist. Der gleiche Druckername muss auch in der UNIX-Datei "/etc/printcap" angelegt werden, auf die das Programm "lpr" zugreift. Der Druckername wird von dem Programm "papsrv" ohne Überprüfung zum Programm "lpr" weitergeleitet. Entsprechend muss der Administrator sicherstellen, dass ein richtiger Eintrag auch in der Datei "etc/printcap" enthalten ist. Dies geschieht automatisch, wenn Sie einen neuen Drucker mit EtherShare Admin einrichten.
dictdir
dictdir=path
path
ist der Pfad zu dem Verzeichnis, das die PostScript-Funktionsverzeichnisse (engl. Dictionary) und die
"Prep"-Dateien des Druckers enthält wie beispielsweise "AppleDict-", "HeliosDict-" und "LinoDict-". Sie können hier einen alternativen Pfad angeben, wenn einer Ihrer Drucker nicht voll kompatibel mit den Apple LaserWriter Spezifikationen ist und andere Funktionsverzeichnisse und/oder "Prep"-Dateien benötigt. Normalerweise verwenden alle PostScript-Drucker dieselben Dateien.
Die Vorgabe für dictdir ist "$ESDIR/dicts". Wenn Sie die Vorgabe ändern, müssen Sie anschließend die Datei "HeliosDict-" (und optional auch andere Funktionsverzeichnisse) in das neue Verzeichnis kopieren.
lpr
lpr=path
path
legt den Pfad (einschließlich des Dateinamens) zu einem anderen "lpr"-Programm fest, das alternativ zu dem von dem Programm "papsrv" üblicherweise verwendeten "lpr"-Programms eingesetzt werden soll. Wenn Ihr Server das BSD-Drucksystem verwendet, benutzt das Programm "papsrv" das Standard-"lpr"-Programm, welches vom Server zur Verfügung gestellt wird (z.B. "/bin/lpr"). Wenn Ihr Host das System V-Drucksystem verwendet (z.B. Sun Solaris 2.x), setzt das Programm "papsrv" automatisch sein eigenes BSD-ähnliches "lpr"-Programm ein, welches für diesen Fall im Verzeichnis "$ESDIR" vorhanden ist.
Der Parameter lpr kann verwendet werden, um ein anderes "lpr"-Programm festzulegen, welches sich von dem unterscheidet, das das Programm "papsrv" normalerweise wählt. Sie sollten diesen Parameter verwenden, wenn Sie Ihr eigenes angepasstes "lpr"-Programm entwickelt haben. Sie können diese Option auch zur Festlegung eines Shell-Skripts nutzen.
Die Vorgabe für path hängt von dem Typ Ihres Servers ab und ist üblicherweise "/bin/lpr" oder "/usr/local/es/lpr".
Dieser Parameter kann nicht mit EtherShare Admin festgelegt werden - Sie müssen die Datei "atalk.conf" manuell editieren.
noresolve
[no]resolve
Der folgende Abschnitt (zum Parameter resolve) ist aus historischen Gründen beibehalten worden. Ab EtherShare 2.6 stellt das Drucker-Schnittstellenprogramm "diskif" die einfachere Art dar mit "In-Datei-drucken"-Dateien umzugehen.
Der Schalter resolve veranlasst das Programm "papsrv" alle Druckaufträge für die angegebene Drucker-Warteschlange "aufzulösen", bevor sie an das Programm "lpr" gesendet werden. Dabei bindet das Programm "papsrv" alle benötigten Schrift-, Funktionsverzeichnis- und OPI-Bildinformationen im Voraus in die Druckaufträge ein und löst "%%Include-"-Verweise auf. Dies ist immer dann notwendig, wenn Sie Drucker verwenden möchten, die nicht direkt mit den zu EtherShare gehörenden Drucker-Schnittstellenprogrammen angesteuert werden können. Dazu zählen auch das Drucker-Schnittstellenprogramm "diskif" und proprietäre Druckerverbindungen. Bitte beachten Sie aber, dass Sie bei der Verwendung des Schalters resolve beträchtlich mehr Speicherplatz im Spool Verzeichnis auf dem lokalen Server benötigen.
Normalerweise wird das Auflösen eines Druckauftrags von dem jeweiligen Schnittstellenprogramm (z.B. "papif") bei laufendem Verarbeitungsprozess gemacht. Die im Spool Verzeichnis eines Druckers aufgereihten Druckaufträge sind an dieser Stelle noch nicht aufgelöst. Besonders wenn Sie EtherShare OPI verwenden, reduziert dieser Designansatz die Größe des erforderlichen temporären (Spool-) Speicherplatz erheblich.
Der Schalter resolve veranlasst das Programm "papsrv" das Pseudo-Schnittstellenprogramm "$ESDIR/psresolve" aufzurufen. Letzteres vergleicht die für das Dokument benötigten Schriften mit der Liste der fest installierten Schriften des Druckers (die sich in der Datei "FONTS" im Spool Verzeichnis des Druckers befindet) und mit der Liste der im Verzeichnis "$ESDIR/psfonts/FontDirectory" verfügbaren Serverschriften. Diese Vorgehensweise ist intelligenter als den Befehl PostScript Druckauftrag aus dem Druckdialog des Programms auszuwählen, da letzteres immer alle im Dokument verwendeten Schriften einschließt, egal ob Sie sie benötigen oder nicht. Weitere Informationen finden Sie im Abschnitt Schriften einbinden in 11.4 "Der Druckserver im Betrieb".
Sie sollten den Schalter resolve zum Vorbereiten von Druckauftragsdateien für das Offline-Drucken verwenden, oder zur Ausgabe auf einen Drucker oder Belichter, dessen Geräte-Schnittstelle von EtherShare nicht unterstützt wird. Verwenden Sie den Schalter resolve jedoch nicht in Verbindung mit den Standard-Schnittstellenprogrammen von EtherShare, da alle Verweise sonst zweimal eingebunden werden und der Druckauftrag fehlschlägt.
Der Schalter resolve muss in jedem "papsrv"-Eintrag einzeln angegeben werden, für den das Auflösen von Druckaufträgen gewünscht ist.
Aber beachten Sie bitte, dass ein Druckauftrag bei der Ausgabe auf einem anderen Host und/oder Drucker nicht alle benötigten Schriften enthält, wenn er mit einer ungeeigneten "FONTS"-Datei aufgelöst wurde.
Die Vorgabe für diesen Schalter ist noresolve. Es wird also für jeden Druckauftrag einzeln überprüft, ob der Drucker über die benötigten Schriften und Wörterbücher verfügt. Und das Einfügen von OPI-Bildern erfolgt bei laufendem Verarbeitungsprozess.
Dieser Parameter kann nicht mit EtherShare Admin festgelegt werden. Sie müssen die Datei "atalk.conf" manuell editieren.
filter
filter=path
path
legt den Pfad (inklusive des Dateinamens) eines angepassten Filterprogramms fest, welches über den pipe-Mechanismus aufgerufen wird, wobei der "standard input" mit dem Druckauftrag verbunden wird und der "standard output" das Programm "lpr" aufruft. Der Druckauftrag ist bereits aufgelöst, wenn der Schalter resolve angegeben wurde.
Argv[0] ist in diesem Fall der Druckername. Für path gibt es keine Vorgabe.
Der Parameter filter kann in Verbindung mit den Standard-EtherShare-Schnittstellenprogrammen verwendet werden.
Dieser Parameter kann nicht mit EtherShare Admin festgelegt werden. Sie müssen die Datei "atalk.conf" manuell editieren.
filtercmd
filtercmd=path
path
legt den Pfad (inklusive des Dateinamens) eines angepassten Filterprogramms fest, welches wie folgt aufgerufen wird:
path -Pprintername spoolfile
Das Programm "filtercmd" kann dann die (noch nicht aufgelöste) Datei wie erforderlich verarbeiten. Die Ausgabedatei sollte unter demselben Namen erscheinen, wie er als Argument angegeben wird ("spoolfile"). Das Programm "papsrv" wartet, bis das angepasste Filterprogramm beendet ist, bevor es den Druckauftrag weiter verarbeitet. Verglichen mit dem Parameter filter, kann der Parameter
filtercmd zum Beispiel verwendet werden, um einen Vorspann (z.B. ein PostScript-Init) oder einen Nachspann zur Datei hinzuzufügen, ohne die gesamte Datei verarbeiten zu müssen. Verwenden Sie stattdessen den Parameter filter, wenn Sie die gesamte Datei durchsuchen müssen, um beispielsweise Schriftennamen oder Druckauftragsinformationen zu finden.
Es gibt keine Vorgabe für path.
Der Parameter filtercmd kann in Verbindung mit den Standard-EtherShare-Schnittstellenprogrammen verwendet werden.
Dieser Parameter kann nicht mit EtherShare Admin festgelegt werden. Sie müssen die Datei "atalk.conf" manuell editieren.
publish
Der Schalter [no]publish kann verwendet werden, um eine Drucker-Warteschlange in der Auswahl anzuzeigen oder zu verstecken. Wenn der Schalter auf nopublish gesetzt ist, erscheint die entsprechende Warteschlange nicht in der Auswahl. Trotzdem ist sie in EtherShare Admin immer noch sichtbar und kann konfiguriert werden. Um diesen Parameter auf nopublish zu setzen, markieren Sie in EtherShare Admin das Auswahlfeld Queue verstecken in dem entsprechenden Drucker-Konfigurationsfenster.
Die Vorgabe für diesen Parameter ist publish, also ist das Auswahlfeld in EtherShare Admin nicht aktiviert.
groups
groups=name
name
legt die Namen der Gruppen fest, die auf den Prozess "papsrv" zugreifen dürfen. Die Namen werden durch Kommata voneinander getrennt.
noauthenticate
Der Schalter [no]authenticate legt fest, ob das Drucken auf eine Warteschlange vom Typ LaserWriter durch ein Kennwort geschützt ist oder nicht. Wenn der Schalter
authenticate gesetzt ist, müssen Benutzername und Kennwort vor dem Druck eingegeben werden. Diese Einstellung betrifft alle Warteschlangen vom Typ LaserWriter auf demselben Server.
Die Vorgabe für diesen Schalter ist noauthenticate.
foreground/
background
Die vorgegebene Arbeitsweise des Mac OS 9 LaserWriter-Druckertreibers (Version 8.7) ist Hintergrunddruck. In diesem Fall wird das Verarbeiten von Druckaufträgen zweimal durchgeführt; zuerst lokal auf dem Macintosh und dann noch einmal in der gewählten Drucker-Warteschlange.
Das Programm "papsrv" veranlasst nun allerdings den Apple LaserWriter-Druckertreiber dazu, trotz der oben genannten Voreinstellung die Druckaufträgen direkt an die gewählte Warteschlange auszugeben. Dieses Verhalten kann durch das Setzen des Schalters background in der Konfigurationsdatei "atalk.conf" wieder aufgehoben werden.
Die Standardeinstellung für diesen Schalter ist foreground, so dass er nicht explizit gesetzt werden muss.
11.6 Manuelle Druckerkonfiguration

Wichtig: Generell ist es bequemer und sicherer, Drucker mit dem Programm EtherShare Admin anzulegen und zu pflegen.

Wenn mehrere Drucker-Warteschlangen vom Druckserver bedient werden, muss für jede ein separater "papsrv"-Prozess konfiguriert werden. Beim Start ermittelt "papsrv" automatisch die Anzahl der Drucker-Warteschlangen aus der Anzahl der Einträge in der Datei "atalk.conf" und startet für jeden einen separaten Kind-Prozess.
Das Programm "papsrv" führt lediglich AppleTalk-Druckfunktionen für das Netzwerk aus. Es kann also nicht wissen, wie der jeweilige Drucker physisch mit dem Server verbunden ist. Die gesamte Kommunikation mit dem Drucker wird durch das UNIX-Systemprogramm "lpd" abgewickelt. Es extrahiert die benötigten Informationen über den jeweiligen Drucker aus der UNIX-Systemdatei "/etc/printcap" und verwendet dafür den von dem Programm "papsrv" erhaltenen logischen (UNIX)-Druckernamen als Schlüssel. Das Programm "lpd" leitet dann den Druckauftrag an das Ausgabe-Filterprogramm "psof" weiter (um eine optionale Titelseite zu erzeugen) und sendet ihn anschließend an das geeignete Schnittstellenprogramm ("papif", "psif", "tcpif", "balanceif", "diskif", "holdif" oder "shmif").
Jede Drucker-Warteschlange benötigt einen Eintrag in der Datei "/etc/printcap", in dem im Detail hinterlegt ist, wie der jeweilige physische Drucker mit dem Server verbunden wurde.
Der Eintrag in der Datei "/etc/printcap" gibt an, welches Schnittstellenprogramm und welches Ausgabe-Filterprogramm benötigt wird. Der Ausgabefilter wird für die Erzeugung der Titelseite verwendet und das Schnittstellenprogramm stellt die Verbindung zu dem physischen Drucker her. Der Ausgabefilter für alle PostScript-Drucker ist das Programm "psof".
11.6.1 Globale Parameter
Beim Start greift jedes Drucker-Schnittstellenprogramm zuerst auf die zentrale Konfigurationsdatei "atalk.conf" zu, um seine Konfiguration auszulesen.
Die im Folgenden beschriebenen Parameter können für jedes der Schnittstellenprogramme in der Datei "atalk.conf" definiert werden. Sie können für jeden Drucker zusammen mit anderen später beschriebenen Parametern individuell festgelegt werden. Dies geschieht in einem Bereich der Datei "atalk.conf", der der logische Druckername wie beispielsweise "Laser1:" vorangestellt ist. Alternativ können die Parameter in einem speziellen globalen "if"-Bereich der Datei "atalk.conf" festgelegt werden. In diesem Fall sind sie für alle Schnittstellenprogramme gültig (Im Zweifelsfall haben jedoch die individuell gesetzten Parameter vor den global vorgegebenen Vorrang). Zurzeit kann keiner der unten aufgeführten Parameter mit EtherShare Admin festgelegt werden, Sie müssen dies manuell mit einem Editor wie beispielsweise vi vornehmen. Lesen Sie bitte auch 5.14 "Manuelles Bearbeiten von "atalk.conf"".
watchtime
watchtime=time
time
legt ein Zeitintervall in Sekunden fest, währenddessen das Drucker-Schnittstellenprogramm den Statuskanal des Druckers überprüft. Als Diagnosehilfe können Sie das UNIX-Programm "lpq" einsetzen, um den Status jedes über eine Warteschlange verbundenen Druckers zu prüfen. "lpq" gibt die Statusmeldung wieder, die Sie normalerweise in dem Dialogfenster des LaserWriter-Treibers für lokal angeschlossene AppleTalk-Drucker sehen.
Der Druckserver gibt solche Statusmeldungen nicht wieder an die Arbeitsstationen zurück - er übergibt sie nur an das "Druckaufträge"-Fenster in EtherShare Admin. Der Parameter watchtime wurde eingeführt, weil die PostScript-Prozessoren einiger Drucker in manchen ungewöhnlichen Situationen aufgrund von Zeitfehlern anhalten, wenn der Statuskanal des Druckers für eine längere Zeitdauer überprüft wird.
Die Vorgabe für den Parameter time ist 10 Sekunden.
Geben Sie 0 ein, wenn Sie verhindern möchten, dass das Drucker-Schnittstellenprogramm den Statuskanal des Druckers überprüft. Dies beeinflusst nicht die Handhabung von Fehlermeldungen des Druckers. Trotzdem zeigt das Programm "lpr" in diesem Fall nur "Printing job" oder "No entries" an, je nachdem ob Druckaufträge in der Drucker-Warteschlange vorhanden sind oder nicht.
Wenn Sie in der Lage sein müssen, den Druckerstatus mit dem Programm "lpq" zu prüfen, sind 10 - 60 Sekunden ein sinnvoller Zeitwert.
mail
[no]mail
Der Schalter mail bestimmt, ob dem Absender des Druckauftrags Fehlermeldungen mit HELIOS Mail übermittelt werden sollen. Auch wenn Sie den Schalter nomail setzen, werden Fehler bei der Druckausgabe immer noch in der Logdatei des Druckers gespeichert. Viele Arten von Fehlern werden auch in die Systemmeldungs-Datei geschrieben, damit Sie die Möglichkeit haben, sie sich später mit EtherShare Admin oder einem Editor wie vi anzusehen. Weitere Informationen finden Sie im Abschnitt Benutzer- und Dokumentnamen in Druckaufträgen in
A 7.1 "EtherShare-Logdateien".
Die Vorgabe für diesen Schalter ist mail.
chargebanner
[no]chargebanner
Dieser Schalter sorgt dafür, dass der Seitenzähler des Druckers die Anzahl der Titelseiten (wenn das Auswahlfeld
Titelseite in dem Drucker-Konfigurationsfenster in EtherShare Admin aktiviert ist) zu der Anzahl der gedruckten Seiten hinzuaddiert.
Die Vorgabe für diesen Schalter ist chargebanner.
bannerfirst
bannerfirst veranlasst den Drucker dazu, die Titelseite vor dem eigentlichen Druckauftrag auszugeben.
bannerlast
bannerlast sorgt dafür, dass die Titelseite nach Beendigung des eigentlichen Druckauftrags von dem Drucker ausgegeben wird.
Die Voreinstellung ist bannerfirst.
clientmessages
[no]clientmessages
Der Schalter clientmessages bestimmt, ob dem AFP-
Client (beziehungsweise dem PCShare-Client) Statusmeldungen des Druckers angezeigt werden. Diese Hinweise werden als Bildschirmmeldungen anzeigt und melden beispielsweise Papierstau, falsches Papierformat und andere Drucker-relevanten Fehler.
Die Vorgabe für diesen Schalter ist clientmessages.
nospoolspool
[no]spoolspool
Dieser Schalter legt fest, ob ein verarbeiteter (engl. spool) Druckauftrag mit der Information "markiert" wird, dass er bereits verarbeitet wurde. Wenn er auf spoolspool gestellt ist, wird ein bereits gespoolter Druckauftrag nicht als solcher erkannt. Folglich ist es bei einer verketteten EtherShare-Drucker-Warteschlange nur für die erste Warteschlange sinnvoll diesen Schalter auf spoolspool zu stellen.
Die Vorgabe für diesen Schalter ist nospoolspool.
ignoreresolveopts
Wenn der Schalter ignoreresolveopts gesetzt ist, ignoriert eine nachfolgende EtherShare-Warteschlange alle Hinweise auf bereits aufgelöste Verweise eines vorangegangenen Verarbeitungsprozesses. Wenn Sie jedoch nur erreichen möchten, dass eine Warteschlange einzelne Verweise ignoriert - beispielsweise Referenzen zu eingebetteten Schriften oder ähnliches -, dann können Sie einen oder mehrere der folgenden Schalter setzen:
ignoreprocset-resolveopt
Wenn der Schalter ignoreprocsetresolveopt gesetzt ist, ignoriert die nachfolgende EtherShare-Warteschlange nur Informationen über eingebettete Procsets.
ignorefontresolveopt
Wenn der Schalter ignorefontresolveopt gesetzt ist, ignoriert die nachfolgende EtherShare-Warteschlange nur Informationen über eingebettete Schriften (fonts).
ignoreinclude-resolveopt
Wenn der Schalter ignoreincluderesolveopt gesetzt ist, ignoriert die nachfolgende EtherShare-Warteschlange nur Informationen über eingebettete EPSF-Dateien.
ignoreopiresolveopt
Wenn der Schalter ignoreopiresolveopt gesetzt ist, ignoriert die nachfolgende EtherShare-Warteschlange nur Informationen über aufgelöste OPI-Verweise.
nice
nice=niceincrement
Die Priorität eines Drucker-Schnittstellenprogramms - verglichen mit der anderer ausführbarer Programme auf dem Druckserver - kann verändert werden. Mit dem UNIX-Parameter nice können Sie die Priorität und damit die Geschwindigkeit eines Programms erhöhen/verringern. Je höher die Priorität eines Programms, desto weniger "nett" (engl. nice) ist sein Verhalten anderen Programme gegenüber. Die Werte für niceincrement sind wie folgt zu verstehen:
niceincrement > 0 langsamer / "nett" gegenüber anderen
Anwendungen
niceincrement < 0 schneller / weniger "nett" gegenüber
anderen Anwendungen
Der vorgegebene Wert für niceincrement ist 0.
Um den aktuellen Bereich des Parameters nice zu erfahren, lesen Sie bitte die entsprechenden Seiten Ihres UNIX-Handbuchs.
extendedinfo
[no]extendedinfo
Die Logdatei des Duckers ("$ESDIR/printer.acct.x") enthält Informationen über das Datum und die Uhrzeit des Ausdrucks, den Dokumentennamen, den Benutzer, die verwendeten Schriften und mehr. Wenn der Schalter
extendedinfo gesetzt ist, wird für jeden Druckauftrag der Umfang der Informationen beispielsweise durch eine Liste der OPI-Bildersetzungen und die Gesamtanzahl der gedruckten Bytes erweitert.
Die Vorgabe für diesen Schalter ist extendedinfo.
facility
facility=logfacilityname
facility
ist eine Zeichenkette, die nur von dem Systemadministrator gesetzt werden sollte, da ihre Verwendung fortgeschrittenes Wissen über UNIX-Programmierung erfordert. Für weitere Hinweise zu diesem Parameter lesen Sie bitte die Seiten über "syslogd(1)" im UNIX-Handbuch.
rsslimit
rsslimit=maxbytes
rsslimit
(resident set size limit) wird von dem Parameter maxbytes festgelegt. Letzteres ist die maximale Größe in Kilobyte, die ein Drucker-Schnittstellenprogramm als Speicher verwenden kann. Wenn dieser Parameter nicht gesetzt ist, hängt die Speicherverwaltung von Ihren Systemeinstellungen ab.
nomagic
[no]magic
PostScript-Drucker können normalerweise keine Druckaufträge annehmen, die aus "flachen" ASCII-Daten bestehen. Sie benötigen Druckaufträge im PostScript-Format. ASCII-Druckdaten können manuell mit dem Hilfsprogramm "pstext" in PostScript gewandelt werden. Alternativ hierzu können die Schnittstellenprogramme des Druckservers auch automatisch herauszufinden, ob ein bestimmter Druckauftrag im PostScript- oder im ASCII-Format vorliegt, indem der Anfang der Druckdatei auf die Buchstabenfolge "%!PS-Adobe" hin durchsucht wird. Ist diese Kennung nicht vorhanden, dann geht der Druckserver davon aus, dass der Druckauftrag nicht im PostScript-Format vorliegt und wandelt ihn vor der Ausgabe automatisch in PostScript um.
Einige Anwendungsprogramme (besonders solche, die unter MS-Windows laufen) erzeugen die PostScript-Kennung nicht zuverlässig. Dadurch versagt die automatische Erkennung der Form des Druckauftrags, so dass statt Ihres Dokuments ein PostScript-Programm ausgedruckt wird. In solchen Fällen können Sie den Schalter nomagic setzen, um die automatische Erkennung des Druckauftrags-Typs auszuschalten.
Die Vorgabe für diesen Schalter ist nomagic. Der Schalter magic sollte nur für PostScript-Drucker verwendet werden. Legen Sie ihn nicht in dem globalen Bereich "if:" fest, wenn der Druckserver auch Nicht-PostScript-Drucker bedient. Definieren Sie ihn in diesem Fall für jedes Schnittstellenprogramm separat.
fontdir
fontdir=string
string
ist der Pfadname des Host-Verzeichnisses , das die Liste aller Schriften des Servers enthält ("FontDirectory"). Die Schriften selbst sind in Unterverzeichnissen von fontdir in alphabetischer Reihenfolge enthalten.
Die Vorgabe für string ist "$ESDIR/psfonts".
volumes
volumes=string
string
ist der Pfadname (inklusive des Dateinamens) der Datei, die die EtherShare-Volumeliste enthält.
Die Vorgabe für string ist "$ESDIR/conf/afpvolumes".
dictdir
dictdir=path
path
ist der Pfadname des Verzeichnisses, das die PostScript-Funktionsverzeichnisse (engl. Dictionary) und Drucker "Prep"-Dateien, wie "AppleDict-", "Helios-Dict-" und "LinoDict-" enthält. Sie können hier einen alternativen Pfad festlegen, wenn einer Ihrer Drucker nicht vollständig mit dem Apple LaserWriter kompatibel ist und andere Funktionsverzeichnisse oder "Prep"-Dateien benötigt. Normalerweise verwenden alle PostScript-Drucker dieselben Dateien.
Die Vorgabe für path ist "$ESDIR/dicts". Wenn Sie diese Vorgabe ändern, müssen Sie die Datei "HeliosDict-" (und optional auch die anderen Funktionsverzeichnisse) in das neue Verzeichnis kopieren.
11.6.2 Ansteuerung von PostScript-Druckern über eine AppleTalk-(PAP)-Verbindung
Über AppleTalk verbundene PAP-kompatible Drucker werden im Netzwerk über ihre so genannte "Network Visible Entity"-Kennung (NVE) identifiziert. Diese besteht aus dem NVE-Namen, dem Druckertyp und der AppleTalk-
Zone. Diese Parameter müssen dem Schnittstellenprogramm bekannt sein, damit es einen physischen Drucker eindeutig identifizieren kann.
Unter anderem folgende Drucker unterstützten die PAP-Spezifikation: Apple LaserWriter, LaserWriter Plus, ImageWriter II und ImageWriter LQ.
Das Schnittstellenprogramm für AppleTalk-fähige PostScript-Drucker ist das Programm "papif" (lesen Sie bitte 11.3 "Die Programme des Druckservers"). "papif" wird von dem UNIX-Systemprogramm "lpd" aufgerufen und extrahiert zusätzliche Konfigurationsdaten aus der Datei "/etc/printcap", indem es den von dem Programm "lpr" übergebenen logischen (UNIX)-Druckernamen als Schlüssel verwendet.
Beim Start greift jeder "papif"-Prozess zuerst auf die zentrale Konfigurationsdatei "atalk.conf" zu, um seine Konfiguration auszulesen. Drucker können bei Bedarf mit einem Editor wie beispielsweise vi angelegt werden. Wir empfehlen Ihnen aber dringend, dies stattdessen mit dem Programm EtherShare Admin durchzuführen. Lesen Sie bitte auch 5.14 "Manuelles Bearbeiten von "atalk.conf"".
Die unten beschriebenen Parameter können für das Programm "papif" in der Datei "atalk.conf" definiert werden. Die Parameterliste wird von dem logischen Druckernamen - z.B. "Laser1" - angeführt, welcher dem Programm "papif" über eine Verknüpfung zugeordnet wird.
entity
entity=nvename
nvename
ist die NVE-Kennung (Network Visible Entity), bestehend aus NVE-Name, -Typ und -Zone des Druckers, unter der er im AppleTalk-Netzwerk bekannt ist. Dieser Name ist nicht mit dem AppleTalk-Namen der Drucker-Warteschlange identisch. Bitte denken Sie daran, dass sie alle Vorteile (schnelle Verarbeitung, "Prep"-Dateimanagement usw.) von Drucker-Warteschlangen umgehen, wenn Sie Druckaufträge von den Arbeitsplätzen direkt an einen Drucker schicken.
Eine NVE-Adresse hat folgende Struktur:
entity="name:type@zone"
name ist der NVE-Name des Druckes und type ist der NVE-Typ. zone ist die AppleTalk-Zone, in der sich der Drucker befindet. Wenn der UNIX-Host und der AppleTalk-Drucker beide in derselben Zone sind, kann der Eintrag für die Zone mit dem Zeichen "*" angegeben werden.
localwinsize
localwinsize=maxlpackets
maxlpackets legt die maximale Anzahl der Datenpakete fest, die während einer Transaktion von dem Programm "papif" über das Netzwerk an den Drucker geleitet werden. Die Anzahl der Pakete muss eventuell limitiert werden, wenn die Größe des Speichers im Drucker zu klein ist.
maxlpackets kann variiert werden, um die Datentransferrate zu optimieren.
Die Vorgabe (und das Maximum) für maxlpackets ist 8.
remotewinsize
remotewinsize=maxrpackets
maxrpackets legt die maximale Anzahl der Datenpakete fest, die während einer Transaktion von dem Drucker über das Netzwerk an das Programm "papif" geleitet werden. Die Anzahl der Pakete muss eventuell limitiert werden, wenn die Speichergröße im UNIX-Host zu klein ist.
maxrpackets kann variiert werden, um die Datentransferrate zu optimieren.
Die Vorgabe (und das Maximum) für maxrpackets ist 8.
Wie oben beschrieben wurde, benötigt ein vollständig konfigurierter PAP-Drucker je einen Eintrag in der Datei "atalk.conf" und in "/etc/printcap".
In der folgenden Darstellung sehen Sie einen typischen Eintrag für einen PAP-Drucker in der Datei "atalk.conf":
papsrv: name="SilentSpooler", printer="Laser1"
Laser1:
entity="Silentwriter:LaserWriter@LocalTalk"

Und hier ein typischer Eintrag für einen PAP-Drucker in der Datei "/etc/printcap":
Laser1:\
:lp=/usr/local/es/lprdevdir/Laser1:\
:if=/usr/local/es/if/Laser1:\
:of=/usr/local/es/psof:\
:sh:mx#0:du#0:sf:\
:sd=/usr/spool/Laser1:\
:af=/usr/local/es/printer.acct:\
:lf=/usr/spool/Laser1/Laser1-log:

Dieser Eintrag enthält ein paar spezielle Eigenschaften, die normalerweise nicht in den Einträgen der UNIX-Datei "printcap" vorkommen. Beispielsweise benötigt ein Netzwerkdrucker keine Gerätedatei im Verzeichnis "/dev", allerdings versucht das UNIX-Drucksystem "lpr" immer noch, exklusive Zugriffsrechte für eine solche Datei zu erhalten. Daher ist es nötig, eine leere "Pseudo"-Datei für jeden Drucker zu erstellen. Diese kann mit dem folgenden Befehl für jeden beliebigen Drucker angelegt werden:
touch /usr/local/es/lprdevdir/Laser1
wobei Laser1 der logische Druckername ist.
Dieser Befehl wird automatisch abgeschickt, wenn Sie Drucker mit EtherShare Admin einstellen. Die Verwendung einer individuellen Datei für jeden Drucker ermöglicht es, einer Vielzahl von Druckern parallel zu betreiben. Andernfalls kann das Programm "lpr" nur einen Drucker gleichzeitig bedienen.
Die andere Eigenschaft, die normalerweise nicht in der UNIX-Variante der Datei "/etc/printcap" zu finden ist, stellt das Schnittstellenprogramm ("if=") dar, welches den logischen Druckernamen "Laser1" anstatt des Programmnamens "papif" spezifiziert. "Laser1" ist eine "Verknüpfung" zum Programm "papif" über ein Unterverzeichnis des Verzeichnisses "$ESDIR".
Die erforderliche symbolische Verknüpfung für jeden Drucker kann mit Befehlen ähnlich den Folgenden erstellt werden:
cd /usr/local/es
ln -s if_name /usr/local/es/if/xPrinter

wobei if_name das Schnittstellenprogramm bezeichnet und xPrinter der logische (UNIX)-Druckername ist,
zum Beispiel:
ln -s /usr/local/es/papif /usr/local/es/if/Laser1
oder
ln -s /usr/custom/if_name /usr/local/es/if/Laser1
Die Zeile "if=" im "/etc/printcap"-Eintrag spezifiziert dann die symbolische Schnittstelle "/usr/local/es/if/Laser1" anstatt der realen Schnittstelle
Auf diese Weise zeigt der "/etc/printcap"-Eintrag auf das Schnittstellenprogramm des Druckers, erlaubt es dem Schnittstellenprogramm aber gleichzeitig den Pfad zum EtherShare-Verzeichnis zu finden, damit es auf Hilfsprogramme zugreifen kann, die es während der Ausgabe braucht. Außerdem gewährleistet dieser Ansatz in einer
Systemumgebung mit mehreren Drucker-Warteschlangen, dass jedes Schnittstellenprogramm eindeutig auf seinen eigenen Konfigurationseintrag in der Datei "atalk.conf" zugreifen kann.
Im folgenden Beispiel sind symbolische Links dargestellt, die von drei Druckern verwendet werden, von denen zwei über das EtherShare "papif"-(AppleTalk)-Schnittstellenprogramm und einer durch TCP/IP angesteuert werden:
linux$ ls -l *if
-rwxr-xr-x 1 root staff Jun 17 1991 20:01 papif
-rwxr-xr-x 1 root staff Jul 03 1991 20:01 psif
-rwxr-xr-x 1 root staff Nov 13 1991 20:01 tcpif


if:
total 0
lrwxrwxrwx 1 root system 8 Jun 17 1991 xw3 ->../tcpif
lrwxrwxrwx 1 root system 8 Jul 03 1991 lw ->../papif
lrwxrwxrwx 1 root system 8 Nov 13 1991 lwform ->../papif
linux$
Die notwendigen Links werden automatisch erstellt, wenn Sie Drucker mit EtherShare Admin anlegen.
Zum Schluß möchten wir Sie darauf hinweisen, dass beim Anlegen von Druckern mit EtherShare Admin der Benutzer des Druckerdaemons in der Datei "/etc/printcap" normalerweise mit dem Schalter "du#0" auf ID 0 (d.h. Benutzer "root") gesetzt wird. Dies vermeidet Fehler beim Drucken, die sonst von fehlenden Zugriffsrechten herrühren können. Dies kann insbesondere dann auftreten, wenn der Druckauftrag externe Verweise auf OPI-Bilder oder "%%Include-"-Kommentare enthält. Diese Eigenschaft ist mit einem kleinen Sicherheitsrisiko verbunden. Weitere Informationen zu diesem Thema finden Sie in der Beschreibung des Parameters daemonuid in 13.3 "Die Parameter des Programms "admsrv"".
Wenn der Drucker mehrere alternative logische Namen haben soll, können Sie diese manuell in der ersten Zeile des "/etc/printcap"-Eintrags durch das Zeichen "|" getrennt angeben, beispielsweise:
Laser1|lw|ps|PostScript:\
Bitte beachten Sie, dass alle logischen (UNIX)-Druckernamen auf jedem Host eindeutig sein müssen und auch keine Leerzeichen enthalten dürfen.
11.6.3 Ansteuerung von PostScript-Druckern über eine serielle Verbindung
Seriell angeschlossene PostScript-Drucker haben keine Netzwerkkennung. Sie werden über die physische
"RS-232"-Schnittstelle (seriell oder V24) des Hosts eindeutig adressiert. Dafür wird diese physische Schnittstelle in die Datei "/etc/printcap" eingetragen.
Das Schnittstellenprogramm für seriell angeschlossene PostScript-Drucker ist das Programm "psif" (Lesen Sie bitte 11.3 "Die Programme des Druckservers"). "psif" wird von dem UNIX-Systemprogramm "lpd" aufgerufen und extrahiert zusätzliche Konfigurationsdaten aus der Datei "/etc/printcap", indem es den von dem Programm "lpr" übergebenen logischen (UNIX)-Druckernamen als Schlüssel verwendet.
"psif" initialisiert dann entsprechend die Geräteparameter für die serielle Schnittstelle. Der Druckserver benötigt
8-Bit, No Parity and Hardware Handshake - bitte lesen Sie die folgende Beschreibung Transparenz für 8-Bit für weitere Details.
Transparenz für 8-Bit
Viele Macintosh-Programme benötigen einen für 8-Bit-Kodierungen transparenten Kommunikationskanal zum Drucker, besonders wenn PostScript-Dateien mit eingebetteten binären Bitmapdaten ausgeben werden. Wenn Sie einen Drucker über die "RS-232"-Schnittstelle verbinden, müssen Sie einerseits sicherstellen, dass in der Datei "/etc/printcap" 8-Bit-Kommunikation und Hardware Handshake spezifiziert wird (dies erledigt EtherShare Admin automatisch). Andererseits müssen Sie auch den Drucker selbst entsprechend einrichten und ein Druckerkabel verwenden, das für die Betriebsart Hardware Handshake geeignet ist. Beachten Sie bitte, dass trotz korrekter Konfiguration und Verkabelung mögliche Probleme auftreten können, die weiter unten im Abschnitt nobinmode beschrieben werden.
Einige Drucker haben Bedienungselemente oder DIP-Schalter zur Anpassung von Kommunikationsparametern. Bei Anderen können Sie diese Einstellungen mit dem Apple-Programm "LaserWriter Hilfsprogramm" vornehmen (wird meist mit LaserWriter-Druckern mitgeliefert). Bitte wählen Sie bei der Verwendung dieses Programms direkt den Drucker und keine Drucker-Warteschlange aus.
Weil seriell angesteuerte PostScript-Drucker eindeutig über die physische "RS-232"-Schnittstelle (beispielsweise "/dev/ttyb") des Hosts adressiert sind (und diese in der Datei "/etc/printcap" eingetragen ist), muss die Adresse des Druckers nicht in der Datei "atalk.conf" angegeben werden. Daher braucht das Programm "psif" nicht immer einen Eintrag in dieser Datei.
Der einzige im Folgenden beschriebene Parameter kann manuell für das Programm "psif" in der Datei "atalk.conf" definiert werden. Die Parameterliste wird von dem logischen Druckernamen - z.B. "Laser2" - angeführt, welcher dem Programm "psif" über eine Verknüpfung zugeordnet wird.
nobinmode
[no]binmode
Selbst wenn der Kommunikationskanal auf 8-Bit, No Parity und Hardware Handshake eingestellt ist, können Bitmapbilder immernoch binäre Informationen enthalten, die unbeabsichtigter Weise mit speziellen Steuerbefehlen der seriellen Schnittstelle des PostScript-Interpreters des Druckers übereinstimmen. Insbesondere sind die Zeichenfolgen Ctrl-C für "aktuellen Druckauftrag abbrechen", Ctrl-D für "Dateiende" und Ctrl-T für "Statusabfrage" reserviert. Dieses Problem betrifft nur serielle Druckerverbindungen - "AppleTalk"-, "TCP/IP-Datenstrom"- und "Shared Memory"-Verbindungen sind immer binärtransparent und haben einen separaten Kommunikationskanal für Statusmeldungen.
PostScript-Interpreter von Druckern, die nach 1992 hergestellt wurden - besonders solche, die PostScript Level 2 Unterstützung implementiert haben - unterstützen häufig einen speziellen 8-Bit binärtransparenten Modus mit Namen "binmode". Dieser vermeidet die Konflikte mit Steuerbefehlen, indem er diese stattdessen als zwei 7-Bit Zeichen kodiert.
Der Parameter binmode veranlasst das Programm "psif" dazu, den angewählten Drucker beim Start jedes Druckauftrags nach seinen Binär-Modus-Fähigkeiten zu fragen, um dann - wenn dies möglich ist - den Binär-Modus automatisch einzustellen. Das Überprüfen der Binär-Modus-Kompatibilität bedeutet eine geringfügig zusätzliche Belastung des Prozessors. Daher sollten Sie diesen Parameter nur angeben, wenn Ihr Drucker diese Option unterstützt.
Die Vorgabe für diesen Schalter ist nobinmode.
Im Folgenden finden Sie einen typischen "/etc/printcap"-Eintrag für seriell angeschlossene PostScript-Drucker:
Laser2:\
:lp=/dev/ttyb:\
:br#9600:rw:fc#0000374:\
:fs#0000003:xc#0:xs#0040040
:of=/usr/local/es/psof:\
:if=/usr/local/es/psif:\
:sh:mx#0:du#0:sf:\
:sd=/usr/spool/Laser2:\
:af=/usr/adm/printer.acct:\
:lf=/usr/spool/Laser2/Laser2-log:

In diesem Beispiel wird ein PostScript-Drucker für die
direkte Verbindung über die serielle Schnittstelle einer Sun-Arbeitsstation konfiguriert.
In der erste Zeile des oben angegebenen Beispiels wird der logische Druckername "Laser2" festgelegt. Dieser Name muss in der Parameterliste des Programms "papsrv" (in der Datei "atalk.conf") enthalten sein ("printer=Laser2"), um den physischen Drucker der passenden Drucker-Warteschlange zuzuordnen.
Die zwei Zeichen langen Kürzel in den folgenden Einträgen des Beispiels charakterisieren spezielle Eigenschaften des Druckers. In der folgenden Liste finden Sie eine Beschreibung der verwendeten Kürzel. Bitte lesen Sie zum weiteren Verständnis dieser Parameter Ihre UNIX-System-Dokumentation oder die Online-Dokumentation (manuals/lprman.pdf) auf der HELIOS CD-ROM.
lp printer device
br baud rate
rw read/write
fc flag clear
fs flag set
xc local mode clear
xs local mode set
if interface program
of output filter
sh suppress headers
du daemon user
mx maximum file size
sf suppress form feeds
sd spool directory
af accounting file name
lf log file name

Wenn der Drucker mehrere alternative logische Namen haben soll, können Sie diese manuell in der ersten Zeile des "/etc/printcap"-Eintrags durch das Zeichen "|" getrennt angeben, beispielsweise:
Laser2|lw|ps|PostScript:\

Hinweis: Alle logischen (UNIX)-Druckername müssen auf
jedem Host eindeutig sein. Die Namen dürfen keine Leerzeichen enthalten.

11.6.4 Ansteuerung von PostScript-Druckern über eine TCP/IP-Verbindung
Über TCP/IP angesteuerte PostScript-Drucker werden im TCP/IP-Netzwerk an ihrer Internetadresse und ihrer Servicenummer erkannt. Diese Parameter müssen dem Schnittstellenprogramm bekannt sein, damit es möglich ist, einen bestimmten Drucker eindeutig zu identifizieren.
Das Schnittstellenprogramm für TCP/IP-PostScript-Drucker ist "tcpif" (Lesen Sie bitte 11.3 "Die Programme des Druckservers"). "tcpif" wird von dem UNIX-Systemprogramm "lpd" aufgerufen und extrahiert zusätzliche Konfigurationsdaten aus der Datei "/etc/printcap", indem es den von dem Programm "lpr" übergebenen logischen (UNIX)-Druckernamen als Schlüssel verwendet.
Das Programm "tcpif" unterstützt das "TCP/IP-Datenstrom"-Protokoll und das "Remote LPR"-Protokoll, wobei "TCP/IP-Datenstrom" voreingestellt ist. Das "Remote LPR"-Protokoll wird aktiviert, wenn der Parameter "service" in der Datei "atalk.conf" den Eintrag "printer" oder "515" bekommt. Außerdem müssen Sie den Parameter rprinter="printer_queue_name" festlegen.

Hinweis: Bedenken Sie bitte, dass EtherShare "rm/rp"-Konfigurationen nicht mehr erkennt, wenn Sie diese in der Datei "printcap" manuell bearbeiten.

"TCP/IP-Datenstrom"-Drucker müssen zu der EtherShare TCP/IP-Datenstrom-Implementierung kompatibel sein. Bitte kontaktieren Sie Ihren Druckerhersteller oder HELIOS-Lieferanten (bitte sehen Sie auf dem HELIOS Web-Server: http://www.helios.de nach), wenn Sie sich dessen nicht sicher sind.
Das "TCP/IP-Datenstrom"-Protokoll ermöglicht die bidirektionale Kommunikation mit dem Drucker, während das "Remote LPR"-Protokoll nur eine unidirektionale Kommunikation zulässt. Außerdem stellt die HELIOS-Implementation optional einen separaten Kommunikationskanal für Statusmeldungen mit der Adresse <port+1> bereit (siehe unten). Diese Adresse kann nicht konfiguriert werden.
Sie können die Bidirektionalität testen, indem Sie von der UNIX-Befehlszeile eine "Telnet"-Verbindung mit Ihrem TCP/IP-Drucker wie folgt herstellen:
telnet <host> <port>
z.B.
"telnet 192.9.200.1 4000" oder
"telnet osiris bspp"

host ist die IP-Adresse (oder der Hostname) des Druckers. Letztere sind normalerweise in der Datei "/etc/hosts/" aufgelistet. port ist die Servicenummer (oder der Servicename), die dem Prozess auf dem Host entspricht. Wenn Ihr Drucker eine TCP/IP-fähige Netzwerkschnittstelle hat, sollten diese Parameter in Ihrer Druckerdokumentation angegeben sein.
Sie sollten in der Lage sein, mit dem PostScript-Interpreter des Druckers zu kommunizieren und PostScript-Antworten zu erhalten (bidirektionale Kommunikation). Allerdings ist dieser Test allein noch kein Beweis dafür, dass diese Verbindung zu der EtherShare TCP/IP-Datenstrom-Implementierung voll kompatibel ist.
Durch das Kontaktieren des Druckers über "Telnet" wird überprüft, ob zumindestens die Basiskommunikation funktioniert. Sie haben damit noch nicht verifiziert, ob der Kommunikationskanal binärtransparent ist und sich somit für den Druck von Bitmapdaten (Grafiken) eignet.
Wenn Sie in der "Telnet"-Sitzung in der Lage sind, auf bidirektionale Weise mit dem Drucker zu kommunizieren, versuchen Sie den Drucker unter Verwendung von EtherShare Admin mit denselben Host- und Servicenummern anzulegen, die Sie im "Telnet"-Test verwendet haben.
Wenn dies nicht möglich ist, dann ist die TCP/IP-Verbindung für den "tcpif"-Treiber in EtherShare nicht geeignet. In diesem Fall müssen Sie das "Remote LPR"-Protokoll einrichten oder den TCP/IP-Treiber eines Drittanbieters verwenden. Wie bereits an anderer Stelle beschrieben, muss in diesem Fall in EtherShare der Befehl "resolve" angegeben werden.
EtherShare verwendet eine zweite Servicenummer mit der Adresse <port+1>, um Statusinformationen vom Drucker abfragen zu können. Sollte diese Adresse auf Ihrem Drucker nicht implementiert sein, dann sind Sie zwar noch immer in der Lage zu drucken, erhalten jedoch keine Statusmeldungen (z.B. die Meldung "busy") über Ihre Druckaufträge. Sie haben dann auch nicht die Möglichkeit, laufende Druckaufträge abbrechen und dabei bereits verarbeitete Inhalte zu löschen.
"Remote LPR"-Drucker erfordern erheblich mehr temporären Speicherplatz auf dem lokalen Host als "TCP/IP"-Drucker, da sie vor Beginn der Ausgabe die Gesamtgröße eines Druckauftrags wissen müssen. Daher muss erst der gesamte Druckauftrag auf eine lokalen Festplatte gespeichert werden, bevor er an den "Remote LPR"-Drucker weitergeleitet werden kann. Außerdem senden diese Drucker keine Statusmeldungen oder geben Auskunft über vorhandene Schriften. Dementsprechend ist eine "TCP/IP-Datenstrom"- oder AppleTalk-Verbindung zu bevorzugen. Schließlich muss der lokale Host-Computer auf dem entfernten Host-Computer bekannt sein, d.h. es müssen entsprechende Einträge in den Dateien "/etc/hosts" sowie "hosts.equiv" bzw. "hosts.lpd" vorhanden sein, sonst wird der Druckauftrag von dem "Remote LPR"-Drucker zurückgewiesen.
Für "Remote LPR"-Drucker kopiert EtherShare Admin beim Anlegen des Druckers die Schriftinformationen aus der gewählten PPD-Datei in die Datei "FONTS" im Spool Verzeichnis des Druckers.
Beim Start greift jeder "tcpif"-Prozess zuerst auf die zentrale Konfigurationsdatei "atalk.conf" zu, um seine Konfiguration auszulesen. Drucker können bei Bedarf mit einem Editor wie beispielsweise vi angelegt werden. Wir empfehlen Ihnen aber dringend, dies stattdessen mit dem Programm EtherShare Admin durchzuführen. Lesen Sie bitte auch 5.14 "Manuelles Bearbeiten von "atalk.conf"".
Die folgenden Parameter können in der Datei "atalk.conf" für das Programm "tcpif" konfiguriert werden. Die Parameterliste wird von dem logischen Druckernamen - z.B. "Laser3" - angeführt, welcher dem Programm "tcpif" über eine Verknüpfung zugeordnet wird.
host
host=inetno
inetno
ist die IP-Adresse des Druckers im TCP/IP-Netzwerk (oder, wenn vorhanden, des Terminalservers des Druckers). inetno kann in der üblichen Art - durch Punkte getrennte Dezimaldarstellung - angegeben werden. Alternativ kann hier ein Hostname aus der Datei "/etc/hosts" angegeben werden. Beispiele:
host=192.9.200.1 oder host=osiris
Im Fall von "Remote LPR"-Verbindungen ist inetno die IP-Adresse oder der Name des Host-Computers, an dem der entfernte Drucker angeschlossen ist.
statusport
[no]statusport
Dieser Schalter legt fest, ob ein separater Kommunikationskanal für Statusmeldungen mit der Adresse <port+1> bereitgestellt wird.
Die Vorgabe lautet statusport.
service
service=port
port
ist die Servicenummer (auch Serviceport genannt), die dem Prozess auf host entspricht, der für den Drucker verantwortlich ist. Die Servicenummer liegt zwischen 1 und 65535. Alternativ kann hier ein Servicename aus der Datei "/etc/services" angegeben werden.
Beispiele:
service=4000 oder service=bspp
Das Programm "tcpif" verwendet normalerweise das "TCP/IP-Datenstrom"-Protokoll. Wenn Sie
service=printer oder service=515 eintragen, wird stattdessen das "Remote LPR"-Protokoll konfiguriert. Sie müssen dann aber auch den Parameter "rprinter" angeben.
noctrld
[no]ctrld
Der Parameter ctrld legt fest, ob das Steuerzeichen Ctrl-D verwendet werden soll, um das "Ende-des-Druckauftrag" anzuzeigen. Dies ist immer dann notwendig, wenn der Drucker über einen Terminalserver und eine serielle Schnittstelle mit dem TCP/IP-Netzwerk verbunden ist.
Lesen Sie bitte auch die Beschreibung Transparenz für 8-Bit weiter oben im Text für zusätzliche Informationen.
Die Vorgabe für diesen Schalter ist noctrld.
tcpresolve
[no]tcpresolve
Wenn ein Druckauftrag verarbeitet wird und der Schalter notcpresolve gesetzt ist, wird der Druckauftrag "nicht angefasst" und ohne Veränderungen ausgegeben.
Die Vorgabe ist tcpresolve.
writesize
writesize=block
block
ist die Anzahl an Bytes, die bei einem einzigen Schreibvorgang über das Netzwerk gesendet werden. Der Minimalwert für block ist 4096.
Der vorgegebene Wert für block ist 8192.
rprinter
rprinter=name
name
ist der Name des entfernten Druckers auf dem entfernten Host-Computer, wie er in der entfernten "/etc/printcap"-Datei angegeben ist.
Beispiel:
rprinter=rlw
Im Folgenden sehen Sie einen typischen "atalk.conf"-Eintrag für einen "TCP/IP-Datenstrom"-Drucker:
papsrv: name="TCPSpooler", printer="Laser3"
Laser3: host=192.9.200.1, service=4000

Dagegen sieht ein typischer "atalk.conf"-Eintrag für einen "Remote LPR"-Drucker wie folgt aus:
papsrv: name="osiris-remote-spooler",
printer="rm1"
rm1: host="ibm", service=printer, rprinter="lw"

Der Eintrag in die Datei "/etc/printcap", den das Programm "lpr" für einen "TCP/IP"- oder "Remote LPR"-Drucker benötigt, entspricht größtenteils dem eines PAP-PostScript-Druckers:
Ein typisches Beispiel:
Laser3:\
:lp=/usr/local/es/lprdevdir/Laser3:\
:if=/usr/local/es/if/Laser3:\
:of=/usr/local/es/psof:\
:sh:mx#0:du#0:sf:\
:sd=/usr/spool/Laser3:\
:af=/usr/adm/printer.acct:\
:lf=/usr/spool/Laser3/Laser3-log:

Das Schnittstellenprogramm (if=) verwendet den logischen Druckernamen "Laser3" für das Programm "tcpif". "Laser3" ist ein "Verweis" auf das Programm "tcpif", der über ein Unterverzeichnis des Verzeichnisses "$ESDIR" verläuft.
Lassen Sie sich nicht davon irritieren, dass der obige Eintrag nicht den Begriff "remote" oder "rm" enthält. Dies hat seine Richtigkeit, da EtherShare diesen Begriff nicht erkennt.
Wenn der Drucker mehrere alternative logische Namen haben soll, können Sie diese manuell in der ersten Zeile des "/etc/printcap"-Eintrags durch das Zeichen "|" getrennt angeben, beispielsweise:
Laser3|lw|ps|PostScript:\

Hinweis: Alle logischen (UNIX)-Druckername müssen auf
jedem Host eindeutig sein. Die Namen dürfen keine Leerzeichen enthalten.

11.6.5 Ansteuerung eines Shared Memory-Software-RIPs
PostScript-Software-RIPs können über eine "Shared Memory"-Schnittstelle mit dem Druckserver kommunizieren, wenn sie auf demselben Host-Computer wie EtherShare installiert werden. Das RIP muss von autorisiertem Personal (technisches Personal des Verkäufers der RIP-Software) installiert werden und zu der EtherShare "Shared Memory" Schnittstellen-Spezifikation kompatibel sein. Kontaktieren Sie den Hersteller des RIPs oder Ihren HELIOS-Lieferanten, wenn Sie sich dessen nicht sicher sind.
Das RIP muss konfiguriert sein und gestartet werden, bevor Sie die Drucker-Warteschlange mit EtherShare Admin anlegen.
Das Schnittstellenprogramm für die "Shared Memory"-Schnittstelle ist das Programm "shmif" (Lesen Sie bitte 11.3 "Die Programme des Druckservers"). "shmif" wird von dem UNIX-Systemprogramm "lpd" aufgerufen und extrahiert zusätzliche Konfigurationsdaten aus der Datei "/etc/printcap", indem es den von dem Programm "lpr" übergebenen logischen (UNIX)-Druckernamen als Schlüssel verwendet.
Beim Start greift jeder "shmif"-Prozess zuerst auf die zentrale Konfigurationsdatei "atalk.conf" zu, um seine Konfiguration auszulesen. Drucker können bei Bedarf mit einem Editor wie beispielsweise vi angelegt werden. Wir empfehlen Ihnen aber dringend, dies stattdessen mit dem Programm EtherShare Admin durchzuführen. Lesen Sie bitte auch 5.14 "Manuelles Bearbeiten von "atalk.conf"".
Der folgende Parameter kann für das Programm "shmif" in der Datei "atalk.conf" definiert werden. Die Parameterliste wird von dem logischen Druckernamen - z.B. "Shm1" - angeführt, welcher dem Programm "shmif" über eine Verknüpfung zugeordnet wird.
key
key=path
path
gibt den Pfad (inklusive des Dateinamens) der "Schlüssel"-Datei für das Shared Memory-Verfahren an. Diese Datei muss bereits existieren. Das RIP muss mit demselben Pfad konfiguriert worden sein.
Das RIP und das "Shared Memory"-Schnittstellenprogramm verwenden lediglich den "inode"-Wert der Schlüsseldatei, um einen eindeutigen numerischen Schlüssel zu erzeugen. Dabei wird in die angegebene Datei weder geschrieben noch wird diese in irgendeiner Art verändert. Dementsprechend kann jede existierende Datei (wie z.B. "/bin/ls") zu diesem Zweck verwendet werden. Lesen Sie bitte die Beschreibung des Parameters "ftok" in Ihrer UNIX Dokumentation für weitere Informationen.
Es gibt keine Vorgabe für path.
Im Folgenden sehen Sie einen typischen "atalk.conf"-Eintrag für ein "Shared Memory"-RIP:
papsrv: name="shm-spooler", printer="shm1"
shm1: key="/bin/ls"

Der Eintrag in die Datei "/etc/printcap", den das Programm "lpr" für ein "Shared Memory"-Software-RIP benötigt, entspricht größtenteils dem eines PAP-PostScript-Druckers
11.6.6 "In-Datei-drucken"-PostScript-Drucker
Wenn Sie automatisch PDF-Dateien erzeugen möchten, dann können Sie in einem bestimmten UNIX-Verzeichnis in Dateien drucken und den Acrobat Distiller anweisen, dieses Verzeichnis regelmäßig zu überprüfen und eingehende Dateien in PDF umzuwandeln.
Das Schnittstellenprogramm "diskif" verarbeitet diese Art von Druckaufträgen (Lesen Sie bitte 11.3 "Die Programme des Druckservers"). Es umfasst die folgenden Parameter:
dir
dir=path
path
legt den (absoluten) UNIX-Pfad des Verzeichnisses fest, in dem der verarbeitete Druckauftrag gespeichert wird. Der Dateiname besteht aus dem Titel des Druckauftrags und dem typischerweise angehängten Suffix ".ps".
Wenn path auf UNIX FIFO (aktive Programmverbindung, engl. named pipe) zeigt und nicht auf ein Verzeichnis, werden die verarbeiteten Druckdaten direkt in diese Programmverbindung geschrieben.
Wenn path mit dem Pipe-Zeichen ("|") beginnt, wird die gesamte Zeichenfolge nach "|" als UNIX-Befehlszeile erkannt und die verarbeiteten Druckdaten werden dem aufgeführten Programm direkt übergeben.
pssuffix
[no]pssuffix
Dieser Schalter bestimmt, ob das Suffix ".ps" an die verarbeitete Druckauftragsdatei angehängt wird. Ist der Schalter auf nopssuffix gesetzt, entfällt die Dateinamenserweiterung ".ps".
Die Vorgabe ist pssuffix.
prefix
prefix=filenameprefix
filenameprefix
legt fest, ob Dateien aus einer bestimmten Drucker-Warteschlange mit einem Präfix vor ihrem Original-Dateinamen "markiert" werden. Dies kann recht sinnvoll sei, wenn mehrere "In-Datei-drucken"-Warteschlangen in dasselbe Zielverzeichnis drucken.
resolve
[no]resolve
Wenn ein Druckauftrag für eine "In-Datei-drucken"-Warteschlange bearbeitet wird und der Schalter auf noresolve gesetzt ist, dann wird der Druckauftrag
"nicht angefasst" und ohne Veränderung ausgegeben.
Die Vorgabe ist resolve.
notifyprog
notifyprog=path
path
ist der (absolute) UNIX-Pfad des Programms, welches mit den Parametern -Pprintername pathtopsfile gestartet wird, sobald das Programm "diskif" den Druckauftrag erfolgreich aufgelöst (engl. resolved) hat.
Z.B.: notifyprog=/usr/local/bin/distillnotify
Das Programm "diskif" exportiert während dieses Programmaufrufs die folgenden Umgebungsvariablen:
HELIOS_JOBFOR=<Name des Benutzers (falls verfügbar), der den Druckauftrag abgesendet hat>
HELIOS_JOBUSER=<Name des Benutzers (falls verfügbar), wie er dem Programm "lpd" bekannt ist>
HELIOS_JOBHOST=<Name (falls verfügbar) des Servers, auf dem die Drucker-Warteschlange eingerichtet ist>
HELIOS_JOBTITLE=<Titel des Druckauftrags (falls verfügbar)>
HELIOS_PRINTERNAME=<logischer (UNIX) Name der Drucker-Warteschlange>
HELIOS_JOBPAGES=<Erwartete Anzahl an Seiten. Dieser Wert kann von der tatsächlich benötigten Seitenanzahl leicht abweichen>
HELIOS_JOBSIZE=<Erwartete Größe des Druckauftrags (in Bytes). Der angegebene Wert ist meistens kleiner als die tatsächliche Größe>
compression
compression=mode
mode
bestimmt das Kompressionsverfahren. Sie können zwischen verschiedenen Arten der Komprimierung wählen: LZW, ZIP und Keine. Keine bedeutet, dass keine Datenkompression stattfindet.
11.6.7 Ausgabe an eine Halten- oder Fehler-Warteschlange
Die Drucker-Schnittstellenprogramme (z.B. "tcpif", "psif", "diskif" usw.) können so konfiguriert werden, dass alle verarbeiteten Druckaufträge an eine Hold-Warteschlange weitergeleitet werden. In einer Hold-Warteschlange werden die aufgelösten Druckaufträge für einen definierbaren Zeitraum gespeichert. Zusätzlich können die Drucker-Schnittstellenprogramme auch so konfiguriert werden, dass fehlerhafte Druckaufträge - z.B. durch PostScript-Fehler oder fehlende Schriften - an eine Fehler-Warteschlange weitergeleitet werden. Im Prinzip ist eine Fehler-Warteschlage auch eine Hold-Warteschlange.
Das Schnittstellenprogramm "holdif" (lesen Sie bitte
11.3 "Die Programme des Druckservers") speichert Druckaufträge für einen definierbaren Zeitraum, bevor es diese löscht. Der folgende Parameter kann konfiguriert werden:
jobholdtime
jobholdtime=seconds
seconds
bestimmt die Zeit in Sekunden, für den ein verarbeiteter Druckauftrag in einer Hold-/Fehler-Warteschlange gehalten wird. Wenn seconds auf 0 gesetzt wird, bleibt der Druckauftrag so lange in der Hold-/Fehlerwarteschlange, bis er von Hand gelöscht wird. Dieser Parameter ist obligatorisch, d.h. es muss ein bestimmter Wert eingegeben werden.
11.6.8 Lastverteilung für Druckaufträge einrichten
Sie können Ihre Druckaufträge an eine Balance-Warteschlange ausgeben. In einer Balance-Warteschlange sind zwei oder mehr Drucker-Warteschlangen zu einer Gruppe zusammengefasst, in der Druckaufträge automatisch zu einer zweiten oder dritten Drucker-Warteschlange innerhalb dieser Gruppe weitergeleitet werden, wenn die erste mit einem großen Druckauftrag beschäftigt ist.
Das Schnittstellenprogramm für die Lastverteilung von Druckaufträgen ist "balanceif" (Lesen Sie bitte 11.3 "Die Programme des Druckservers").Der folgende Parameter kann konfiguriert werden:
printers
printers=listofprinters
listofprinters
ist eine Zeichenfolge, die die logischen (UNIX)-Druckernamen der Warteschlangen enthält, die eine Gruppe von Drucker-Warteschlangen zur Verteilung von Drucklast bilden. Die Namen müssen durch Komma und ohne Leerzeichen voneinander getrennt werden,
z.B.: printers=color,color2,pro630
11.7 Adobe Document Structuring Conventions
Das EtherShare-Druckserver-System wurde entworfen, um den Adobe Document Structuring Conventions (auch als ADSC bzw. DSC bekannt) zu entsprechen. Die folgenden Absätze beschreiben einige der wichtigsten Eigenschaften. Bitte lesen Sie auch die "Guidelines for a Distributed Printing Environment" von Adobe für weitere Details.
"Prozedurensammlungen"-Abfragen (engl. Procedure Sets bzw. ProcSets) werden von dem Druckserver-Programm "papsrv" wie folgt gehandhabt:
Die mit einem Druckauftrag von einem Macintosh-Programm gesendeten "ProcSets" werden von dem Programm "papsrv" automatisch erfasst und mit einem Namen in dem Verzeichnis "$ESDIR/dicts" gespeichert, der dem Originalnamen der "ProcSets" entspricht. Wenn ein folgendes Programm das gleiche "ProcSet" benötigt, wird dieses aus dem Verzeichnis "$ESDIR/dicts" gesendet und nicht erneut von der Macintosh-Arbeitsstation über das Netzwerk zum Druckserver geschickt.
Bestimmte PostScript-Kommentare werden von den EtherShare Drucker-Schnittstellenprogrammen ("papif", "psif", "tcpif", "shmif" und "diskif") erkannt und diese reagieren wie folgt darauf:
%%IncludeProcSet
%%IncludeResource: procset

Es wird versucht, die angegebene Prozedurensammlung aus dem Verzeichnis "$ESDIR/dicts" in den Druckauftrag einzubinden. Wenn diese dort nicht vorhanden ist, erhalten Sie eine Warnmeldung.
%%DocumentProcSets
%%DocumentNeededProcSets
%%DocumentNeededResources: procset

Alle vom Dokument benötigten Prozedurensammlungen - die jedoch nicht enthalten sind -, werden aus dem Verzeichnis "$ESDIR/dicts" in den Druckauftrag eingefügt.
%%IncludeFont (obligatory includes)
%%IncludeResource: font

Wenn möglich, wird die angegebene Schrift aus dem Verzeichnis "$ESDIR/psfonts" in den Druckauftrag eingefügt. Das Verzeichnis enthält zuladbare PostScript-Schriften, die dort mit dem Programm EtherShare Admin manuell installiert wurden.
%%DocumentFonts
%%DocumentNeededFonts
%%DocumentNeededResources: font

Alle vom Dokument benötigten Schriften, die nicht fest auf dem Drucker installiert sind, werden in den Druckauftrag eingebunden. Dazu überprüft der Druckserver die entsprechende Liste der fest installierten Drucker-Schriften "/usr/spool/<printername>/FONTS". Diese Datei kann mit EtherShare Admin aktualisiert werden, wenn Sie neue permanente Schriften in Ihrem Drucker installieren. Falls die Liste der fest installierten Schriften nicht ermittelt werden kann, wird stattdessen die Schriftinformation aus der gewählten PPD verwendet.
Falls eine angegebene Schrift nicht eingebunden werden kann, sendet das entsprechende Schnittstellenprogramm mit Hilfe des Programms "afpmsg" eine Fehlermeldung an den Benutzer. Wenn auf dem Macintosh des Benutzers HELIOS Mail installiert ist, dann erhält er die Meldung zusätzlich direkt an seine Arbeitsstation.
%%IncludeFile
%%IncludeResource: file
%%IncludeDocument

Wenn es möglich ist, wird die angegebene Datei (z.B. ein EPS-Bild) in den Druckauftrag eingebunden. Die Datei kann entweder gemäß UNIX- oder Macintosh-Konventionen für Datei- und Pfadnamen spezifiziert sein. Im letzteren Falle ermittelt der Druckserver das zugehörige UNIX-Verzeichnis durch eine Suche in der im Verzeichnis "$ESDIR/conf/afpvolumes" liegenden Volumeliste des Dateiservers.
%%IncludeFeature
Wenn es möglich ist, wird die angegebene Eigenschaft aus der PPD-Datei der Drucker-Warteschlange in den Druckauftrag eingebunden.
Das Drucker-Schnittstellenprogramm akzeptiert auch während der Druckausgabe Meldungen von jedem Drucker. Die Meldungen werden auf Fehlersituationen überprüft, die entsprechend zu dem Benutzer weitergeleitet werden, der den Druckauftrag abgeschickt hat.
EtherShares Mechanismus, Schriften automatisch zum Drucker zu schicken, unterstützt auch die Programme, deren Druckausgabe mit Hilfe des "Quick Draw"-Treibers von Apple oder über natives PostScript erfolgt, welches "Adobe Document Structuring"-Kommentare enthält. TrueType-Schriften werden vom Macintosh transparent über den Druckserver an den Drucker geleitet, können jedoch in der aktuellen Version der Software nicht im Schriftenserver installiert werden.
Linotype-
Erweiterung zur Farb-
separation
Der Druckserver unterstützt auch die "Linotype-Erweiterung zur Farbseparation" - die Schnittstellenprogramme des Druckservers fungieren in diesem Fall als ICS-Einbindungsmodul (Included Color Separation). Ein spezielles PostScript-Funktionsverzeichnis mit Namen "LinoDict 1.0" wird zu diesem Zweck im Verzeichnis "$ESDIR/dicts" bereitgestellt. Diese Funktionalität kann ohne Konflikte auch mit der EtherShare OPI-Erweiterung des Servers koexistieren. Bitte kontaktieren Sie HELIOS, wenn Sie weitere Einzelheiten benötigen.

© 2002 HELIOS Software GmbH