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

Hybrid View

  1. #1
    Registriert seit
    Feb 2005
    Beiträge
    3

    Question PDF in OUTQ drucken? (von IFS)

    hallo!

    ich suche eine möglichkeit pdf dateien die im ifs liegen in eine outq zu drucken (wenn möglich per cl oder rpg). ich habe auch schon per
    Code:
    CPYFRMPCD FROMFLR('AS400') TOFILE(*LIBL/QSYSPRT) FROMDOC(TEST.PDF) TOMBR(*FIRST) TRNTBL(*NONE) TRNFMT(*NOTEXT)
    das ganze versucht. bekomme aber immer folgende fehlermeldung: "PC-Dokument TEST.PDF nicht kopiert." die datei und der Pfad stimmen ganz sicher!

    gibt es noch andere möglichkeiten dies ohne fremdsoftware zu bewerkstelligen?

    danke, mfg christoph

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Die CPYFRMPCD/CPYFRMSTMF/CPYFRMIMPF akzeptieren nur Physische Dateien als Ziel !
    Um PDF's zu drucken benötigst du einen PDF-Reader. Ob es diesen für Java/Linux gibt weiß ich nicht, aber irgendwer hat so was bestimmt.
    PDF's können nicht direkt zum Drucker geschickt werden, da sie intern in Postscript gespeichert sind.
    Zusätzlich gibt es noch PDF-spezifische Informationen:
    - Version
    - Verschlüsselung
    - darf überhaupt gedruckt werden
    - usw. usw.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Oct 2004
    Beiträge
    240
    Noch ein paar Fragen:

    Kann der Drucker PDF drucken? (neuere Kopierstationen mit Netzwerkanbindung können das)

    Sind die PDF's mehrseitig?

    Releasestand? Ab V5R3 gibts "a bisserl" was..

    Unter Linux: Dort ist Cups ja schon Standard. Cups bringt im Normalfall einen PDF-Filter mit. Auf einer Linux Maschine mit Cups, reicht ein lpr für den Ausdruck eines PDF-Dokumentes.

    AS/400 -> Linux: Leider bringt Cups auch einen eigenen lpr-Befehl mit. lpr's von der AS/400 (bzw. auch Pase) funktionieren da nicht.

    Abhilfe schafft die Java-OpenSource Jispsi. Für fertiges Commandline-Tool (PDF an Cups-Drucker drucken), einfach melden.

    reine Javalösung:
    Leider gibt es da am OpenSource-Markt noch nichts 100%iges. Man könnte das zwar über Umwege (JavaViewer und daraus wieder Bitmaps machen) realisieren, aber eigentlich bin ich mit meiner oben genannten Linux/Cups-Lösung ganz zufrieden.

    "Leider" wollen/können wir nicht auf V5R3 wechseln. Dort könnte man via DDS (Keyword AFPRSC) zumindest einzelne PDF-Seiten konvertieren. Ein kleines Java-Util könnte das "Aufsplitten" übernehmen.

    Robert P.

  4. #4
    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

  5. #5
    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.

  6. #6
    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.

  7. #7
    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

  8. #8
    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.

  9. #9
    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

  10. #10
    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.

  11. #11
    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

  12. #12
    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.

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
  •