[Howto] PDF-Netzwerkdrucker (simpel)

  • [NAS Typ:] TS-239 Pro
    [Firmware:] 3.2.4 build 0412T
    [Getestet:] Ja
    [Sonstige Modifikationen:] Nein



    PDF-Netzwerkdrucker
    Ich habe auf meinem NAS mit wenigen, nicht schwierigen Schritten einen PDF-Netzwerkdrucker eingerichtet.
    Der Drucker wird im Windows-Netzwerk automatisch angezeigt (Samba-Printer), die erstellen PDF-Dokumente sind ebenfalls im ganzen Netzwerk (Samba-Share) verfügbar.



    Vorraussetzungen
    * QPKG "Optware" installiert und aktiviert
    * Windows-Netzwerkdienst (Samba) aktiviert
    * SSH (Port 22) aktiviert
    * putty installiert und konfiguiert
    * WinSCP intalliert und konfiguriert



    5 Schritte zum PDF-Netzwerkdrucker


    Schritt 1: Netzwerkfreigabe erstellen
    Neue Netzwerkfreigabe "PDF-Drucker" über QNAP Admin Interface anlegen und Rechte vergeben.
    Auf diesem Share werden sowohl die PDF-Ausdrucke, als auch die notwendigen Systemdateien gespeichert.


    Schritt 2: Verzeichnis-Struktur anlegen
    Am Share "PDF-Drucker" ein Verzeichnis "system" erstellen, innerhalb dies die Unterverzeichnisse "logs", "scripts" und "temp" anlegen.


    Schritt 3: printpdf Script erstellen
    Im Verzeichnis "system/scripts" eine Datei "printpdf" erstellen und mit folgendem Inhalt füllen.

    Bash
    #!/bin/sh#$1 = spool file, $2 = uid, $3 = gid, $4 = machinename, $5 = ip, $6 = homedirPDF_FILENAME=`date +"%Y-%m-%d_%H-%m-%S"`_$2.pdfPDF_PATH=/share/PDF-DruckerLOG_FILENAME=pdf_printer.logLOG_PATH=/share/PDF-Drucker/system/logsPS2PDF=/opt/bin/ps2pdfecho Drucke $1 in $PDF_FILENAME für $2 von Computer $4 >> $LOG_PATH/$LOG_FILENAME$PS2PDF $1 $PDF_PATH/$PDF_FILENAME >> $LOG_PATH/$LOG_FILENAME 2>> $LOG_PATH/$LOG_FILENAMEecho PDF erstellt, lösche $1 >> $LOG_PATH/$LOG_FILENAMErm $1echo Setze Benutzerrechte >> $LOG_PATH/$LOG_FILENAMEchown $2:$3 $PDF_PATH/$FILENAME >> $LOG_PATH/$LOG_FILENAMEchmod 700 $PDF_PATH/$FILENAME >> $LOG_PATH/$LOG_FILENAMEecho Auftrag abgeschlossen >> $LOG_PATH/$LOG_FILENAMEecho >> $LOG_PATH/$LOG_FILENAME

    WICHTIG: Die Datei "printpdf" muss mit Ausführungsrechte haben!

    Code
    chmod +x  /share/PDF-Drucker/system/scripts/printpdf


    Schritt 4: Samba Drucker konfigurieren
    Datei "mnt/HDA_ROOT/.config/smb.conf" mit WinSCP öffnen und die folgenden Zeilen am Ende einfügen.

    Code
    ;PDF Netzwerk Drucker[PDF]comment = PDF-Druckerpath = /share/PDF-Drucker/system/tempprintable = yesguest ok = yesprint command = /share/PDF-Drucker/system/scripts/printpdf %s %U %G %m %I %Hlpq command =lprm command =use client driver = yes

    WICHTIG: Der Name des Druckers "[PDF]" muss einzigartig sein, es darf kein anderer Drucker und keine Freigabe den selben Namen haben.


    Danach den Samba-Dienst mittels Telnet neu starten:

    Code
    /etc/init.d/smb.sh restart


    Schritt 5: Ghostscript installieren
    Ghostscript enthält den notwendigen PostScript zu PDF Converter. In putty folgende Zeilen eingeben.

    Code
    ipkg update
    ipkg install ghostscript


    Fertig!
    Jetzt muss der PDF-Netzwerkdrucker nur noch am Computer hinzugefügt werden. Als Treiber einfach einen PostScript (PS) Drucker wählen, zB "HP Color Laserjet 2800 Series PS".
    Alle über den PDF-Netzwerkdrucker gedruckten Dokumente werden am Share "PDF-Drucker" gespeichert.



    Optionale Erweiterung
    Wer möchte, kann mit CUPS noch einen Drucker-Treiber "Push" via Samba konfigurieren um die manuelle Treiberinstallation (s.o.) zu vermeiden.
    ... mir war der Aufwand dafür ehrlich gesagt zu groß, freue mich aber über Ergänzungen.



    Viel Spaß damit!
    gfcom

    Einmal editiert, zuletzt von Eraser-EMC2- () aus folgendem Grund: Befehl für Ausführungsrechte hinzugefügt

  • Jetzt bin ich mal so dreist und wirf mal ein paar Fragen in die Gegend... ;)
    a) Ich finde in Windows 7 das Nas nicht. Also wenn ich auf Arbeitsplatz => Netzwerk gehe, sehe ich ja meine Computer, etc. Da steht mein Nas aber nur unter Andere Geräte ( Doppelklick=> NAS Webseite ) und unter Multimedia. ( für Windows Media Player ) "Microsoft-Netzwerk" ist im Webinterface aktiviert. Ist ein Eigenständiger Server. Ich habe ein Qnap TS-110 mit Firmware 3.3.0. Merkwürdig: Auf anderen PCs sieht man das Nas. Aber auf meinem PC und Notebook ( Bei beiden Qnap Finder installiert, bei Notebook auch Qget ) nicht. :/
    b) Was muss ich denn in die Autorun.sh schreiben?


    Viele Grüße
    Don

  • Hallo Don,


    für deine Frage a) hättest du ein eigenes Thema erstellen können. Da es hier im Thema off-topic ist.


    für deine Frage b) für den PDF-Netzwerkdrucker muß keine Änderung in der autorun.sh erfolgen.


    c) Hast du dich evtl. im beitrag vertan ?


    Stefan

  • Hallo gfcom


    Danke für Deine Anleitung


    alle Schritte so wie Du beschrieben hast erledigt, und siehe da es geht :D .


    Ich hatte es auch vorher selber probiert und nicht hin bekommen. :cursing:


    Prima Sache Deine Anleitung.


    aber eine Frage habe ich noch
    kann man verhindern das die gelöschten Dateien im Papierkorb landen??
    " rm $1" = "mv $1 dev/null" ?? würde das gehen?
    ich kann das aber erst am Samstag prüfen weil ich nicht zu Hause bin. :(


    sonst bin ich sehr zufrieden damit.
    der flatterrich

  • Zitat von "flatterrich"

    kann man verhindern das die gelöschten Dateien im Papierkorb landen??


    Dateien, die man mit der Konsole löscht, kommen nicht in den Papierkorb,
    nur Löschvorgänge über SAMBA, AFP und FTP.

  • Hallo,


    SUPER ANLEITUNG!!!!
    Das ist genau das, was ich gesucht habe :)
    Doch leider funktioniert es einfach nicht. :(


    Ich habe eine TS410. Hat es damit etwas zu tun?
    Wie macht man das: "Die Datei "printpdf" muss mit Ausführungsrechte haben!" - Oder hat es damit etwas zu tun?


    Vielleicht kann mir jemand helfen :oops:


    Danke

  • Zitat von "kapitaenbalu"

    Wie macht man das: "Die Datei "printpdf" muss mit Ausführungsrechte haben!" - Oder hat es damit etwas zu tun?


    Das habe ich mit in die Anleitung eingefügt:

    Code
    chmod +x /share/PDF-Drucker/system/scripts/printpdf


    Wenn diese Datei keine Ausführungsberechtigung hat, dann ist es der Grund , das es nicht funktioniert.


    Stefan

  • Zitat von "kapitaenbalu"


    Wie macht man das: "Die Datei "printpdf" muss mit Ausführungsrechte haben!" - Oder hat es damit etwas zu tun?


    probiere es im telnet/putty mal damit

    Code
    chmod 755 /share/PDF-Drucker/system/scripts/printpdf


    Wichtig ist auch, dass du die Datei printpdf mit einem Linux-Editor, zB mit WinSCP erstellst.


    lg
    gfcom

  • Hallo zusammen


    wer nicht möchte das das #$1 = spool file in seinem Papierkorb landet
    in der Datei /share/PDF-Drucker/system/scripts/printpdf


    rm $1
    durch
    mv $1 /dev/null


    ersetzen.


    wurde von mir getestet und geht. SMBA wertet nur ein löschen aus, ein verschieben wird nicht beachtet.


    mfg
    flatterrich

  • Zitat von "flatterrich"

    wer nicht möchte das das #$1 = spool file in seinem Papierkorb landet
    in der Datei /share/PDF-Drucker/system/scripts/printpdf


    Wenn ich Dateien über die Konsole mit rm lösche, landet diese nicht im Papierkorb.


    Welche Firmware-Version verwendest du ?
    In den neueren Firmwares landen nur Dateien im Papierkorb, die über SMB,AFP oder FTP gelöscht werden.


    Stefan

  • Hallo Stefan


    die Beta 3.3.0 build 0512T ist bei mir drauf, sorry vergessen zu posten.


    richtig löschen in Konsole mit rm keine Dateien in Papierkorb


    im SMBA skript löschen mit rm sind sie drin im Papierkorb


    darum verschieben ins Datennirwana.


    mfg
    Thomas


    Ergänzung: in Konsole bin ich Admin, das Skript geht aber mit den normalen User Rechten (kann es das sein?)

  • hey, SUPER anleitung!!! hat direkt geklappt ... aber gibt es auch eine variable wie du sie in dieser zeile festgelegt hast

    Code
    #$1 = spool file, $2 = uid, $3 = gid, $4 = machinename, $5 = ip, $6 = homedir


    für den originalen datei namen ... so dass man die möglichkeit hat den alten dateinamen "automatisch mitzunehmen"???
    wäre echt der hammer ...


    danke schon im voraus ;) :thumb:

  • Hallo JoLemmon,


    ersetzte mal die Zeile

    Code
    PDF_FILENAME....


    mit folgender

    Code
    PDF_FILENAME=`cat $1 | grep %%Title: | sed 's/%%Title: //' | sed 's/ //' | sed 's/.$//'`"_"`date +"%Y-%m-%d_%H-%M-%S"`".pdf"


    bzw

    Code
    PDF_FILENAME=`cat $1 | grep %%Title: | sed 's/%%Title: //' | sed 's/ //' | sed 's/.$//'`".pdf"


    LG
    gfcom

  • Hallo,
    erstmal vielen dank für die gute Anleitung! Musste ich dann auch gleich Testen :).
    Soweit scheinte alles zu funktionieren. Nur es kam keine pdf-Datei irgendwo an. Im Papierkorb gabs dann die neue Dateien nur auch keine Pdf Datei.
    Ich habe dann:


    Code
    rm $1
    durch
    mv $1 /dev/null


    geändert und seid dem kommen die Pdf´s im Ordner an. Ende gut alles gut :).
    Dacht ich schreib mal mein Problem fall es sonst noch jemand hat oder bekommt..


    Gruß

  • Hallo zusammen


    Ja diese Anleitung ist wirklich Super.
    Nur habe ich ein kleines Problem, wenn ich denn PDF-Printer im smb.conf aktiviere, kann ich nicht mehr im QNAP GUI auf meine Freigabe Ordner zugreiffen. Wenn ich die anklicke schliesst sich das GUI einfach. Vorher mit der alten Firmware ging das Problemlos nun mit der neuen FW 3.3.9 0105T auf meinem TS-410 geht es nicht mehr. Wenn ich die Einträge in der config auskomentiere geht es.
    Firmaware Update schon gemacht, ohne erfolg.


    Hat vielleicht jemand eine Lösung.


    Gruss

  • Hallo,


    erstmal muss ich sagen ,dass das eine Super Anleitung ist. Wirklich praktisch!


    Ich habe allerdings einen Nebeneffekt bei mir (TS-419p+) entdeckt. In der QNAP Weboverfläche lassen sich nun die Freigabeordner (Zugriffskontrolle > Freigabeordner) nicht mehr anzeigen/editieren. Das Webinterface lädt die Seite und lenkt sofort wieder auf die Startseite um, und man muss sich neu anmelden.


    Nachdem ich den Eintrag auf der smb.conf (der mit dem Shell-Skript) wieder auskommentiert habe, hat es wieder funktioniert.


    Grüße,
    venomncc

  • funktioniert bei mir leider nicht, aber im Nezwerk-Papierkorp tauchen die temporäeren postsrcipt datein unter cryptische namen auf
    Firmware 3.4.1 auf TS-410


    Zitat gfcom
    Schritt 1: Netzwerkfreigabe erstellen
    Neue Netzwerkfreigabe "PDF-Drucker" über QNAP Admin Interface anlegen und Rechte vergeben.


    welche Rechte, hab o777 für alle Ordner, nur scripts und das script selber auf o755


    und das Problem meiner beiden vorgänger(xflash & venomncc) besteht noch

  • So nun habe ich es geschaft, nun fliege ich nicht mehr heraus. :D


    habe die Einstellung (browsable = no) in die smb.conf eingefügt nun fliege ich nicht mehr.


    [PDF]
    comment = PDF
    path = /share/PDF-Drucker/system/temp
    browsable = no
    printable = yes
    guest ok = yes
    print command = /share/PDF-Drucker/system/scripts/printpdf %s %U %G %m %I %H
    lpq command =
    lprm command =
    use client driver = yes


    Gruss