Anzeige:
Ergebnis 1 bis 2 von 2

Thema: PDF-Dokumente direkt drucken...

  1. #1
    Registrierter Benutzer
    Registriert seit
    May 2001
    Ort
    Bonn
    Beiträge
    566

    PDF-Dokumente direkt drucken...

    Ich habe mir mal die Mühe gemacht und aus den Schnipseln hier im Forum eine funktionierende Lösung gebastelt. Meine Shell-Kenntnisse sind allerdings äußerst schlecht - Verbesserungsvorschläge deshalb jederzeit willkommen (effektiverer Code, Fehlerbehandlung etc.).
    Ich beziehe mich hier auf SuSE 7.0.

    1. Drucker einrichten
    - YasT starten --> Administration des Systems --> Hardware in System integrieren --> Drucker konfigurieren.
    - Drucker farbig ansteuern --> Druckertyp Postscript --> ... --> Schnittstelle lpt2 o.ä. auswählen (wichtig, ein Drucker sollte hier nicht real angeschlossen sein) --> Auflösung 1200x1200 dpi.

    Da das kein realer Drucker ist, verbleiben die Dateien im Spool-Verzeichnis, die Datei status sagt lediglich "waiting for PS_1200dpi to become ready (offline ?)". So, jetzt haben wir alle Zeit der Welt, um das PostScript-Dokument aus dem Spoolverzeichnis zu klauen .


    2. Script (s.u.) kopieren und an lokale Gegebenheiten anpassen

    Ich gehe davon aus, dass die Namensgebung der Dateien im Spoolverzeichnis immer nach demselben Muster stattfindet und zwar:

    cfA028pinguin <--- Steuerdatei
    dfA028pinguin <--- Dokument im PostScript-Format

    Eine Steuerdatei hat beispielsweise folgenden Inhalt:
    Code:
    Hpinguin
    Pmatze
    JMicrosoftWord-DOS-Referenz.doc
    Cpinguin
    Lmatze
    fdfA029pinguin
    UdfA029pinguin
    NMicrosoftWord-DOS-Referenz.doc
    Diese Steuerdatei benutze ich, um den Besitzer und den Namen des Dokumentes auszulesen.


    Hier also das Script, welches crongesteuert bei mir alle 15 Minuten läuft und bisher super funktioniert:
    Code:
    #!/bin/bash
    PS_EXT=".ps"
    PDF_EXT=".pdf"
    
    cd /var/spool/lpd/PS_1200dpi-a4-auto-color-1200
    ls *$HOSTNAME 2>/dev/null
    if [ $? = 0 ]; then
      for FILE in $(ls d*$HOSTNAME)
      do
      DATFILE=$(echo $FILE |sed s/d/c/);
      OWNER=$(cat $DATFILE |tail -n4 |head -n1 |grep L |sed s/L//);
      HOMEDIR=$(echo "/home/$OWNER");
      PS_NAME1=$(cat $DATFILE |tail -n6 |head -n1 |grep J |sed s/J//);
      PS_NAME=$(echo $PS_NAME1$PS_EXT);
      PDF_NAME=$(echo $PS_NAME1$PDF_EXT);
      mv $FILE $PS_NAME
      ps2pdf $PS_NAME $PDF_NAME
      rm $PS_NAME
      rm $DATFILE
      mv $PDF_NAME $HOMEDIR
      done
    fi

    Eine Sache habe ich hier noch nicht berücksichtigt, wenn der Eigentümer root oder nobody ist und dessen Home-Verzeichnis nicht unter /home liegt.


    Matze

  2. #2
    Premium Mitglied Avatar von mightymike99
    Registriert seit
    Aug 1999
    Beiträge
    374
    Für KDE-User hat der KDE eigene Druckdialog die Fähigkeit bereits mitgebracht. (Siehe Bildschirmphoto).

    Nachdem ich es allerdings zum Test mal kurz benutzt habe und eine Fehlermeldung bekommen habe...
    Geändert von mightymike99 (05.03.02 um 23:16 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •