devcorner.schlenker-webdesign.de > Unix > Samba als PDF-Server
Home Unix LaTeX WWW Print
Diese Seite wurde am 1. April 2006 vorübergehend auf statisch umgestellt. Einige der vorgestellten Tutorials sind veraltet, Links tot und die Zeitangaben stimmen auch nicht. Im Laufe der nächsten Monate wird eine überarbeitete Seite folgen, auf die dann weitergeleitet wird.

Einrichtung eines PDF-Druckservers für Windows-Clients

Achtung: Bitte beachten Sie auch unsere Anmerkungen und Ergänzungen zu dieser Seite!

Diese Seite beschreibt die Einrichtung eines Linux/Unix-Servers, der einen Distiller-Server ersetzt. Zum Einsatz kommt ausschließlich freie Software. Die zu konvertierenden Dateien werden auf einem virtuellen Postscriptdrucker ausgedruckt, nach PDF umgewandelt und in einem Netzlaufwerk archiviert.

Screenshot: Verzeichnisbaum, in den erzeugte PDFs einsortiert werden. Dateien tragen das Login des Benutzers und die Uhrzeit im Namen

Hauptvorteil dieser Lösung gegenüber lokalen Makrolösungen ist, daß aus jeder Anwendung PDF-Dateien erzeugt werden können (Makrolösungen sind meist auf die Office-Anwendungen beschränkt) und daß der Dienst zentral verwaltet werden kann. Mit ca. einer Stunde Mehraufwand lässt sich auch ein Druckertreiber hinterlegen, der beim ersten Zugriff auf den PDF-Service automatisch auf den Windows-Clients installiert wird.

Diese Anleitung basiert auf einer Beschreibung in Ausgabe 72 von Linuxgazette, verwendet aber ein deutlich ausgefeilteres Script zur Speicherung.

Die Vorgehensweise ist recht einfach. Vom Windows-Client wird eine Druckdatei als Postscript auf einem virtuellen Drucker des Samba-Servers ausgedruckt. Anstatt die Datei auszudrucken, wird sie mittels ps2pdf nach PDF konvertiert und als Datei X:\2002\03_Maerz\13\MATTIAS_17.05.07.pdf auf dem vom Windows-Rechner sichtbaren Netzlaufwerk X:\ abgelegt. Der entsprechende Ordner ist auch über X:\heute\ erreichbar.

Hinweise: In der beschriebenen Konfiguration sind alle erzeugten PDFs für alle Benutzer lesbar, die Zugriff zum Samba-Server haben. Für geschützte Bereiche (Buchhaltung, Personalwesen, etc.) empfiehlt es sich, den Samba-Sever mit Authentifizierung (z.B. security = user) zu konfigurieren. Die Zeilen force user = nobody können dann auskommentiert werden und das pdfprint.pl-Script kann so angepasst werden, daß die erzeugte Datei den richtigen Eigentümer und entsprechende Zugriffsrechte hat.

In den vorgestellten Scripten ist keine Erweiterung zur Auslagerung oder zum Löschen vorgesehen. In kleinen Unternehmen, in denen täglich maximal 100 Dateien mit einer jeweiligen Größe von maximal 100kB gedruckt werden, reicht eine 10GB-Platte ca. fünf Arbeitsjahre.

Verwendete Perl-Scripte

  • mkpdfdirs.pl erzeugt den Verzeichnisbaum, in dem die PDFs später archiviert werden
  • lntoday.pl Aktualisiert täglich, wohin der Softlink des heute-Verzeichnisses zeigt
  • pdfprint.pl wandelt Postscriptdateien nach PDF um und sorgt für die richtige Benennung der Datei
Laden sie diese Scripte herunter und kopieren sie sie auf dem Linux-Server nach /usr/local/bin. Ändern sie gegebenenfalls in den Scripten das Basisverzeichnis des PDF-Services auf das bei ihnen verwendete Verzeichnis und den Pfad zum Perl-Interpreter in der ersten Zeile der Scripte (which perl liefert, was sie hier eintragen müssen). Prüfen sie, ob dieses Verzeichnis im Suchpfad liegt, und ändern die Dateiattribute aller Scripte auf ausführbar:
chmod a+x /usr/local/bin/mkpdfdirs.pl

Erzeugen des Verzeichnisbaumes

Rufen sie mkpdfdirs.pl auf. Es erzeugt sämtliche Verzeichnisse der Struktur Jahr/Monat/Tag/ unterhalb des im Script angegebenen Basisverzeichnis und ändert den Eigentümer der jeweiligen Verzeichnisse auf nobody ab.

Rufen Sie das Script lntoday.pl einmal auf. Es erzeugt im Basisverzeichnis des PDF-Services einen Softlink, der auf das aktuelle Datum zeigt.

Regelmäßiges Ändern des heute-Links

Ändern Sie als Root Ihre Crontab so ab, daß täglich fünf Minuten nach Mitternacht der Softlink aktualisiert wird:

export EDITOR=emacs (Ändern des Lieblingseditors)
crontab -e
Tragen Sie folgende Zeile ein:
5 0 * * * perl /usr/local/bin/lntoday.pl
Bitte vergessen Sie am Ende der Zeile den Umbruch nicht.

Wenn íhr Server nicht jede Nacht durchläuft, empfiehlt es sich auch, den Link bei jedem Booten zu aktualisieren. Tragen Sie dazu folgende Zeile in die Datei /etc/rc.d/rc.local (bei SuSE heißt die Datei AFAIK boot.local).

Vorbereitung des Samba-Servers

Richten Sie zunächst einen Samba-Server ein und stellen Sie sicher, daß auf freigegebene Verzeichnisse von den Windows-Rechnern aus les- und schreibbar zugegriffen werden kann.

Die Konfigurationsdatei des Samba-Servers (/etc/smb.conf oder /etc/samba/smb.conf) wird nun um folgende Zeilen erweitert:


    # 
    # Eintraege fuer PDF-Export-Verzeichnis
    #

    [pdf-exports]
       path = /usr/exports/pdf
       browseable = yes
       writeable = yes
       guest ok = yes
       force user = nobody
    #
    # Eintraege fuer PDF-Printer
    #

    [pdf-printer]
       path = /tmp
       printable = yes
       guest ok = yes
       force user = nobody
       print command = /usr/local/bin/pdfprint.pl %s %U
       lpq command =
       lprm command =
       ;; Oft fuer Win2k und XP Clients notwendig
       use client driver = yes
%s ("Spoolfile") wird dabei durch den Namen der nach PDF zu konvertierenden Datei ersetzt, %U durch den Namen des Benutzers, der den Dienst in Anspruch nimmt.

Testen der Konfiguration

Kopieren Sie eine Postscriptdatei in das temporäre Verzeichnis (ich verwende hierzu gerne tiger.ps aus /usr/share/ghostscript/7.xx/examples/). Rufen Sie nun das Script pdfprint.pl darauf auf:

pdfprint.pl tiger.ps mattias
Wenn Sie jetzt im Verzeichnis des heutigen Tages eine PDF-Datei mit Namen mattias_23.31.11.pdf finden, haben Sie gewonnen. Starten Sie den Samba-Server neu und richten Sie den Drucker auf den Clients ein.

Einrichtung der Clients

Screenshot, neue Dienste aus Sicht des Windows-Rechners Auf den Clients sollte der neue "Drucker" nun als "pdf-printer" sichtbar sein. Diesen richtet man nun als Postscript-Drucker ein. Vorzugsweise verwendet man dazu den Treiber für HP Laserjet 5M / 5MP Postscript. Bitte lesen Sie unsere Hinweise zur Verwendung des Adobe-Postscript-Treibers. In den Eigenschaften des neuen Druckers wird unter Schriftarten -> Schriftarten senden als... der Schwellwert für die Umschaltung auf Konturschriftarten auf 1 Pixel eingestellt. Dies ist nötig, damit es später im PDF keine pixeligen schlecht lesbaren Schriften gibt.

Drucken Sie die Testseite. Diese sollte nun als PDF im Verzeichnis des jeweiligen Tages liegen.

Sollten Sie noch Fragen oder Anregungen haben, schreiben Sie bitte eine Email an Mattias Schlenker.

Viel Spaß
Mattias Schlenker


/dev/corner news
Visitenkarten mit LaTeX (27.10.2004)
X.org unter FreeBSD 5.2.1 (25.07.2004)
Kurzanleitung OpenOffice.org und MySQL (SuSE) (14.05.2004)
Neues Howto -- OpenOffice.org und PostgreSQL (FreeBSD) (02.05.2004)
Tip des Tages (FreeBSD) -- Multisession Datensicherung quick and dirty (18.04.2004)
Tip des Tages (Linux/Unix) -- Wörterbuch auf Tastaturshortcut (18.02.2004)
Werbung
Christall Folientechnik – Kastenhauben und technische Folien in Sondergrößen
Cycle-Sport GmbH Heilbronn – Ihr Spezialist für sportliche Mountainbikes
www.getriebeteile.com – Ihre günstige Quelle für Ersatzteile von PKW-Getrieben
Impressum · Mattias Schlenker · 04275 Leipzig · · ms@mattiasschlenker.de · 02.04.06, 14:49:48