[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Hallo,

    ich weiß nicht, ob das Thema noch aktuell ist. Ich habe jetzt auch nach langer Suche eine Möglichkeit gefunden, PDF-Dateien, die im IFS liegen per Programm (ohne manuellen Eingriff) über eine normale OUTQ zu drucken.
    Dazu habe ich auf der iSeries in der PASE-Umgebung Ghostscript installiert. Damit kann man PDF-Dateien in den PCL-Datenstrom konvertieren. Und PCL versteht eigentlich fast jeder Drucker.
    Anschließend wird diese PCL-Datei mit dem QSHELL-Befehl Rfile in eine OUTQ geschrieben und dort entsprechend ausgedruckt.
    Das Ganze habe ich jetzt in ein CL-Programm verpackt und es läuft bislang ohne Probleme. Auch die Antwortzeiten sind super.

    Gruß,
    KM

  2. #2
    Registriert seit
    Aug 2004
    Beiträge
    923
    Cool,

    ein Workaround dazu - den man auch noch in nem Jahr finden/abrufen kann - wäre nett...

    k.

  3. #3
    Registriert seit
    Oct 2004
    Beiträge
    240
    Ich lebe zwar mit meiner Lösung ganz gut, aber etwas neugierig bin ich schon:

    Welches Release hast du auf der iSeries?

    Welches (AIX) Version von Ghostscript hast du installiert? oder compiliert?

    Ich habe das auch mal versucht, allerdings haben mir da ein oder zwei Libs in der PASE-Umgebung gefehlt.
    Woher hast du die? oder ist bei V5R3 mehr dabei?

    Ich habe zwar auch eine AIX-PPC hier stehen, aber die Libs und compilierten Programme lassen sich meistens nicht in der PASE-Umgebung nutzen. Dürfte aber daran liegen das AIX-Release recht alt ist (V4Rx oder so).

    Robert P.

  4. #4
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Hallo Robert,

    wir haben auf der iSeries V5R3 laufen. Ich habe Ghostscript Version 8.53 für AIX 5.3 installiert. Die betreffenden Binaries habe ich von folgender Seite runtergeladen:

    http://aixpdslib.seas.ucla.edu/packa...ostscript.html

    Was hat in Deiner PASE-Umgebung gefehlt ?

    Heute habe ich festgestellt, dass seltsamerweise nicht mehr alles korrekt gedruckt wird, obwohl am Mittwoch alles noch richtig gedruckt wurde. Fehler erscheint keiner. Offenbar ein Druckertreiberproblem oder ein Problem mit der Schriftart. Ich verwende die DEVICE ljet4. Damit müsste man eigentlich auf den meisten Druckern drucken können. Muß jetzt erstmal schauen, wo das Problem liegt. Ist echt komisch.

    Gruß,
    KM

  5. #5
    Registriert seit
    Oct 2004
    Beiträge
    240
    Zitat Zitat von KM
    ...
    Was hat in Deiner PASE-Umgebung gefehlt?
    Ich glaub es waren libnsl.a und libqb.a
    (wobei libnsl.a für das cups-lpr wären).

    Ich denke, dass sich das beim nächsten Release bzw. der nächsten Maschine erledigt.

    Robert P.

  6. #6
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Also die libnsl.a ist bei uns vorhanden. Die libqb.a kann ich auch auf unserer Maschine nicht finden.

    Gruß,
    KM

  7. #7
    Registriert seit
    Jun 2001
    Beiträge
    727
    In OUTQ's bzw. Spoolfiles können beliebige Datenströme abgelegt werden.
    Wenn I5/OS diese nicht selbst handhaben kann, wie SCS, AFPDS, IPDS etc, sind diese vom TYP *USERASCII.
    Host Print Transform (HPT) macht das so und erzeugt intern PCL oder PPDS als *USERASCII, wenn du über eine RMTOUTQ mit TRANSFORM(*YES) druckst.
    Das gleiche passiert, wenn du über den Netserver (SMB-Server) eine OUTQ-Freigabe erzeugst und in diese z.B. mit einem PC druckst - der hier erzeugte Druckdatenstrom ist vom Druckertreiber auf dem PC abhängig und wird auf auf der I5 in der OUTQ vom Typ *USERASCII sein.
    Der Infoprint-Server hat einen PDF-Konverter (intern IPDS-->PDF) und dieser stellt auch PDF-Datenstöme als *USERASCII in der OUTQ ab.

    Dein prinzipieller Ansatz mit PASE und Rfile war schon richtig.
    Die im Bsp. angegebene Postscript-Datei mydoc.ps kannst du durch eine PDF-Datei mit Pfadangaben ersetzen.
    Den lpr kannst du dir schenken, wenn du bereits eine RMTOUTQ erstellt hast. Diese gibst du dann im OVRPRTF als Paramter OUTQ(...) mit an.

    Write the contents of stream file mydoc.ps
    to spooled printer device file QPRINT as unconverted ASCII data,
    and then use the CL LPR command to send the spool file to another system:
    Code:
    before='ovrprtf qprint devtype(*userascii) spool(*yes)'
    after="lpr file(qprint) system(usrchprt01) prtq('rchdps') transform(*no)"
    cat -c mydoc.ps | Rfile -wbQ -c "$before" -C "$after" qprint
    http://publib.boulder.ibm.com/infoce...zahz/rfile.htm

    Wichtig ist das der Netzwerkdrucker direkt PDF verarbeiten kann. Bei der PDF Erstellung ist darauf achtzugeben, das der Drucker die PDF Version unterstützt und die Schriften ggf. mit eingebettet sind.

  8. #8
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Hallo,

    falls es jemanden interessiert, hier eine Beschreibung wie ich das automatisierte Drucken von PDF-Dateien realisiert habe.

    1. Ghostscript Version 8.53 von folgender Seite runterladen:

    http://aixpdslib.seas.ucla.edu/packa...ostscript.html

    2. Zugehörige Fonts (Datei ghostscript-fonts-std-8.11.tar.gz) von folgender Seite runterladen:

    http://prdownloads.sourceforge.net/ghostscript/

    3. Beide Dateien im IFS unter /QOpenSys/ speichern und mit diesem Befehl unter PASE (call qp2term) entpacken:

    tar -xf Dateiname

    Damit ist Ghostscript installiert. Voraussetzung dafür ist natürlich, dass die PASE-Umgebung verfügbar ist (5722SS1 Option 33)

    4. Umgebungsvariable GS_LIB setzen, damit die betreffenden Dateien gefunden werden:

    ADDENVVAR ENVVAR(GS_LIB) VALUE('/QOpenSys/usr/local/bin:/QOpenSys/usr/local/share/ghostscript/8.53/lib:/QOpenSy
    s/usr/local/share/ghostscript/8.53/Resource/fonts')

    5. PDF-Datei in PCL-Datei konvertieren:

    CALL QP2SHELL2 PARM('/QOpenSys/usr/local/bin/gs' '-dQUIET' '-dBATCH' '-dNOPAUSE' '-sDEVICE=ljet4' '-sOutputFile=/IFS-Pfad/PCL-Datei' '/IFS-Pfad/PDF-Datei')

    6. PRTF vom Typ *USERASCII erstellen

    7. PCL-Datei per Batch-FTP in PRTF kopieren.

    Damit wird die Datei nun in die betreffende OUTQ gestellt und gedruckt.

    Anmerkungen:
    Ich hatte es zunächst auch so versucht, wie Sven es beschrieben hat. Der Rfile-Befehl hat zunächst auch funktioniert. Am nächsten Tag jedoch nicht mehr, obwohl keine Einstellungen geändert wurden. Es wurden dann nur noch kryptische Zeichen gedruckt. Ich weiß jedoch nicht warum. Deshalb habe ich auf FTP umgestellt. Damit ging's problemlos.
    Der OVRPRTF in eine andere OUTQ hat nicht funktioniert, weder mit OVRSCOPE *ACTGRPDFN, noch mit *CALLLVL, noch mit *JOB. Deshalb mache ich temporär einen CHGPRTF (Ich weiß, das könnte einen Konflikt geben).

    Jetzt könnt Ihr das Ganze noch in ein CL-Programm packen und dann habt Ihr eine Lösung zum Drucken von PDF-Dateien.

    Viel Spaß damit,
    KM

  9. #9
    Registriert seit
    Jun 2001
    Beiträge
    727
    Was passiert denn, wenn du die PDF-Datei per FTP im binary-Mode in die *USERASCII PRTF kopierst.

    Sollte das nicht gehen, würde ich mal die Probleme am Drucker suchen.
    Weil, wenn der Drucker PDF kann und es mit PCL oder PS funktioniert, sollte es an den Druckereinstellungen liegen. Oder der Drucker unterstützt die PDF-Version nicht.

    Zusätzlich :
    Auf deinem PC kannst du ja mal probieren, per DOS COPY die PDF-Datei direkt zum Drucker zu schicken.
    Weil mehr macht LPR bzw. eine RMTOUTQ auch nicht, d.h. die Druckdaten 1:1 im binary-Mode an den Drucker zu senden.
    Wenn das nicht geht, dann wird es auch auf der I5 mit der FTP oder Rfile-Methode nicht funktionieren.

  10. #10
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Hallo Sven,

    unsere Drucker sind nicht PDF-fähig, sondern können nur PCL5 oder PCL6. Deshalb mache ich ja den Aufwand mit Ghostscript. Die wenigsten Drucker können bis jetzt den PDF-Datenstrom interpretieren. Auch wenn es im Laufe der Zeit immer mehr werden, aber bisher haben wir keinen solchen Drucker. Wenn ich die PDF-Datei direkt in eine *USERASCII Druckerdatei übertrage, werden einfach nur die PDF-Statements gedruckt, die in dieser Datei stecken.

    Gruß,
    KM

  11. #11
    Registriert seit
    Jun 2001
    Beiträge
    727
    Dann ist der Aufwand mit Ghostscript gerechtfertigt.
    Das geht aus deiner ursprünglichen Anfrage aber nicht hervor.

    Trotzdem sollte die Methode, wie du den binären PCL bzw. PS-Datenstrom in eine *USERASCII Spooldatei bekommst egal sein.
    Wichtig ist, das dies wirklich binär d.h. ohne Umsetzung passiert.

  12. #12
    Registriert seit
    Aug 2002
    Beiträge
    55

    Ghostscript Archiv gesucht

    Hallo,

    hat noch jemand die unten angesprochene .tar Datei.

    Die Seite ist leider off und ich kann sonst nur Sourcen finden, hab aber für die PASE Umgebung keinen Compiler.

    Danke im Voraus,
    will_i

Similar Threads

  1. AFPRSC --> PDF
    By jgv in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 28-11-06, 10:15
  2. PDF drucken
    By KM in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 20-09-06, 12:27
  3. Kopien von neuen Spools einer OUTQ
    By linguin in forum IBM i Hauptforum
    Antworten: 13
    Letzter Beitrag: 17-05-06, 13:42
  4. PDF aus RPG drucken
    By miro in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 02-09-05, 14:09
  5. IFS und PDF
    By Pmartsch in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 29-07-04, 08:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •