Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


PDF-Printer

LPD-Drucksystem ] CUPS ] Linux-Clients ] Windows-Clients ] [ PDF-Printer ]


In der Datenverarbeitung hat hat sich das PDF-Format ('PDF' = Portable Document Format) von 'Adobe-Systems' als beliebtes Format zum Austausch von formatierten Texten und Dokumenten etabliert. Dabei sind Programme zum Lesen der PDF-Dokumente (z.B. 'Adobe Reader') meist kostenfrei, jedoch Programme zum Erzeugen von PDF-Dokumenten meist kostenbehaftet. Eine Ausnahme bildet dabei das Produkt 'PDFCreator', welches unter Windows lokal auf dem System betrieben werden kann.
Eine weitere Möglichkeit ist, dieses auf einen Linux-Server mit Hilfe von CUPS (und Samba) zu realisieren. Der Vorteil dieser Lösung ist, man bekommt eine netzwerkfähigen Lösung zum Erstellen von PDFs. Weiterhin brauch auf dem Client kein separates Programm installiert werden und es können alle Client-Betriebssysteme diese Lösung nutzen, die mit einem Print-Server kommunizieren können. Es ist sozusagen eine anwendungsunabhängige Lösung wie ein Druckertreiber.

Im Folgenden wird beschrieben, wie ein bestehender CUPS-Print-Server zur Erstellung von PDF-Dokumenten erweitert werden kann. Ferner wird anhand eines Beispiels erläutert, wie dieser PDF-Drucker in Samba eingebunden werden kann und wie dann ein Windows-Clients dieses nutzen kann.

PDF-Printer mit CUPS

Um einen PDF-Printer unter CUPS zu realisieren, bedarf es zunächst eine funktionierende normalen CUPS-Print-Server-Installation (siehe vorangegangenes Unterkapitel). Um den CUPS-Print-Server nun um die Fähigkeit PDFs erstellen zu können, zu erweitern, ist das Paket 'cups-pdf' zu installieren. Unter Debian kann das mittels 'aptitude install cups-pdf' erfolgen.

Nach der Installation von 'cups-pdf' kann der PDF-Drucker, z.B. über die Web-Oberfläche von CUPS, eingerichtet werden ('http://localhost:631'). Auf der Seite 'Drucker verwalten' ist 'Drucker hinzufügen' auszuwählen. Auf mehreren aufeinander folgenden Seiten ist nun die Konfiguration zu durchlaufen; folgende Fragen werden hierbei gestellt:

Name:         <PDF-Printer>
Standort:     <Lokal auf: meridian.eusterholz.tld>
Beschreibung: <Erstellen einer PDF-Datei (~/PDF)>

Gerät:        <CUPS-PDF (Virtual PDF Printer)>

Marke:        <Generic>

Modell:       <Generic CUPS-PDF Printer (en)>

Als Drucker-Name wurde exemplarisch als 'PDF-Printer' gewählt. Wichtig ist, dass als Gerät 'CUPS-PDF (Virtual PDF Printer' gewählt wird; als Marke sollte 'Generic' und als Model 'Generic CUPS-PDF Printer(en)' ausgewählt werden.

Alternativ zur Web-Konfiguration kann der PDF-Drucker auch auf der Shell-Ebene mit folgenden Kommando erstellt werden:

/usr/sbin/lpadmin -p PDF-Printer -L "Lokal auf: meridian.eusterholz.tld" \
-D "Erstellen einer PDF-Datei (~/PDF)" -E -v cups-pdf:/ \
-P /usr/share/ppd/cups-pdf/CUPS-PDF.ppd \
-o printer-error-policy=abort-job

Nach der Fertigstellung sollte der neue PDF-Printer in der Web-Übersicht von CUPS erscheinen und auch einsatzbereit sein:

Ein erster Test, bezüglich der Funktionalität, kann durch Betätigung des Buttons 'Drucker Testseite' erfolgen. Das Ergebnis der Testseite sollte als Datei 'Test_Page.pdf' im Verzeichnis '/var/spool/cups-pdf/ANONYMOUS' vorliegen. Ab diesen Stadium können Benutzer, die auf den neu eingefügten Drucker zugreifen können, PDF-Dokumente erstellen. Die Resultate sollten in den jeweiligen Heimatverzeichnis '~/PDF' abgelegt werden. Soll dieses aus Windows heraus komfortable genutzt werden, so ist eine Integration mit Samba zu konfigurieren.

Samba Unterstützung

Damit die volle Netzwerk-Unterstützung für Windows-Benutzer gegeben ist, sollte der PDF-Printer mit in Samba als eigene Freigabe aufgenommen werden. Besondere Einstellungen sind für den PDF-Drucker nicht nötig, sofern Windows schon in der Lage ist auf anderen Druckern des CUPS-Servers zu drucken, sollte es auch mit dem PDF-Drucker funktionieren.

Im Folgenden Auszüge aus einer Beispiel-Implementierung der 'smb.conf', dabei sind die relevanten Dinge für eine generelle CUPS-Unterstützung aus dem Teil '[global]' noch mal aufgeführt. Die Freigabe '[home]', welche eigentlich bei jeden Samba-Server vorhanden sein sollte, dient lediglich dazu, dass Benutzer über das Netzwerk an ihre erzeugten PDF-Dokumente kommen.

Auszug aus: /etc/samba/smb.conf

[global]
        ...
        printing = cups
        printcap name = cups
        load printers = No
        ...
...
[homes]
        comment = Benutzer-Freigabe
        read only = No
        create mask = 0755
        directory mask = 0775
        browseable = No

[PDF-Printer]
        comment = PDF-Drucker (~/PDF)
        path = /tmp
        printer admin = root, @smb-admins
        printable = Yes
        printer name = PDF-Printer
...

Die eigentlich Implementierung des PDF-Druckers repräsentiert sich in der Freigabe '[PDF-Printer]', die wie eine normale Druckerfreigabe aussieht. Wichtig ist nur, dass als 'printer name =' die zuvor in CUPS erstellet Druckerwarteschlange ('PDF-Printer') angegeben wird.

Nach einem Neustart von Samba sollte die neue Freigabe '[PDF-Printer]' auf dem Windows-Rechner sichtbar sein. Ein Benutzer der zum Einrichten eines Druckers berechtigt ist, kann nun die PDF-Druckerinstallation abschließen. Mittels eines Doppel-Klick auf die Freigabe '[PDF-Printer]' wird die Installation eingeleitet. Bei der Frage nach einen Treiber, sollte aus der Liste der angebotenen Drucker ein Postscript-Treiber ausgewählt werden:

Eine gute Wahl ist z.B. der 'Apple Color LaserWriter 12/600' von der Fa. 'Apple', der gut mit 'Ghostscript' harmoniert. Andere Treiber, die alternativ genutzt werden können, sind z.B. der 'HP Laserjet 5/5M Postscript' oder 'Minolta Color Pageworks/Pro PS'.

Nach Abschluss der Installation sollte der PDF-Printer, für jeden Benutzer der unter Samba zugreifen kann, nutzbar sein. Die fertigen PDF-Dokumente landen dabei immer, wie schon erwähnt im '/home'-Verzeichnis des jeweiligen Benutzers, unter '~/PDF' auf dem Samba-Server.

Anmerkungen

Auch gibt es für 'cups-pdf' eine entsprechende Konfigurationsdatei: '/etc/cups/cups-pdf.conf'. Eigentlich ist diese schon recht gut vorkonfiguriert und brauch normalerweise nicht groß verändert werden. In dieser Konfigurationsdatei kann z.B. das '/home'-Verzeichnis, wo die fertigen PDF-Dokumente hingelangen sollen, verändert werden.

Das Programm 'cups-pdf' benötigt Berechtigungen auf Dateiebene, daher sollte kontrolliert werden, ob der Parameter 'RunAsUser' in der Konfigurationsdatei '/etc/cups/cupsd.conf', falls vorhanden, durch 'RunAsUser No' ersetzt wird.

Bei Problemen sollten die Log-Dateien unter '/var/log/cups/' betrachtet werden, für 'cups-pdf' gibt es hier eine separate Log-Datei 'cups-pdf_log'.

Für Benutzer die auf den CUPS-Server zwar drucken dürfen, jedoch kein eigenes '/home'-Verzeichnis auf den Server haben, landen die fertigen PDF-Dateien im Verzeichnis '/nonexistent/cups-pdf'. Da dieses Verzeichnis mit automatisch angelegt wird, ist dieses evtl. zu erstellen:

mkdir /nonexistent
chown nobody:nogroup /nonexistent

In der Log-Datei 'cups-pdf_log' äußert sich diese Problem mit folgenden Fehler:

[ERROR] failed to create anonymous output directory (/nonexistent/cups-pdf)

Auch sollte sichergestellt werde, dass diese anonymen Benutzer, an ihre Dokumente herankommen.

Weitere Infos

Homepage: CUPS-PDF http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/
Homepage: CUPS http://www.cups.org
Homepage: Samba http://www.samba.org
Adobe Portable Document Format http://www.adobe.de/products/acrobat/adobepdf.html
Homepage: PDFCreator http://sector7g.wurzel6.de/pdfcreator/
System-Dokumentation: <program> /usr/share/doc/cups-pdf

Home ] Nach oben ] LPD-Drucksystem ] CUPS ] Linux-Clients ] Windows-Clients ] [ PDF-Printer ]

letzte Änderung: 12. April 2009

 

Copyright © 2004 Norbert Eusterholz