[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2005
    Beiträge
    148
    Hallo Baldur,
    danke für die Tipps.
    Aber irgendwie krieg ichs nicht hin.

    Ich habe versucht das *SCS Printerfile per CHGPRTF umzustellen auf CHRID(960 880) und CHRID(1150 1025).

    Mein Feld ZPBEZ1 im Printerfile ist 30A und ich fülle es mit
    Code:
    eval ZPBEZ1=%char(azbzru)
    AZBZRU ist wie oben schon geschrieben 200G mit CCSID 13488.

    Wenn ich mir im Debugger das Feld ZPBEZ1 nach meinem eval oben angucke, sieht es so aus:
    Code:
    > EVAL ZPBEZ1 :x                                                       
         00000     3F3F3F3F 3F3F3F3F 3F403F3F 3F3F3F3F   - ......... ......
         00010     40404040 40404040 40404040 4040....   -               ..
    Das sieht für mich aus, als würde der %char nicht funktionieren.
    Ich brauch den aber, ansonsten krieg ich die Graphic Daten ja nicht in das Alpha Feld.

    Das Problem scheint mit der CCSID meines Jobs zusammenzuhängen.
    %char scheint diese für die Konvertierung zu nutzen.

    Standardmässig hab ich:
    ID des codierten Zeichensatzes (CCSID) . . . . . : 65535
    Standard-ID des codierten Zeichensatzes . . . . . : 273

    Wenn ich jetzt ein CHGJOB CCSID(1025) oder 880 mache, sieht der %char schon ganz anders aus.

    Code:
    > EVAL ZPBEZ1 :x                                                       
         00000     EDDBFABC EBFBDAEF CC40BECB CEEEEADE   - Òû³¯ÔÛ¹Õ¦ ´ôóÓ²ú
         00010     40404040 40404040 40404040 4040....   -               ..
    Ein einfaches Eval im Debugger sagt mir:
    Code:
    ZPBEZ1 = 'VOZDUSNIJ FIL'TR              '
    Was ist eigentlich haben will ist ein: "ВОЗДУШНЫЙ ФИЛЬТР" (Fängt mit nem kyrillischen "BO3" an und hört mit "bTP" auf, ich denk das Forum kriegts hin.)

    Auf dem Drucker kommt dann folgendes raus: http://bit.ly/UDzjQy
    Anzahl Zeichen stimmt, Zeichensatz irgendwie nicht.

    Könnte das am TRANSFORM(*NO) USRDTATFM(*LIBL/TSPRWPR) MFRTYPMDL(*HP6) der OUTQ liegen?


    ===

    *AFPDS hab ich auch versucht, das funktioniert aber noch weniger.
    Haben wir hier noch nie genutzt, scheint aber sinnvoll zu sein.
    Ich kann jetzt zwar PDF drucken, Barcodes und Overlays machen, aber mit FONTNAME funktionierts dann nicht.
    Der Spool wird erstellt, geht kurz auf SND und dann in HLD.

    Ich hatte die OUTQUEUE mit TRANSFORM(*YES) MFRTYPMDL(*HP6) eingerichtet.

    Code:
     * POSITIONEN                                                       
    A          R D632102                                                
    A                                      SPACEB(002)                  
    A            ZPPOSI         3S 0O     2                             
    A                                      EDTCDE(Z)                    
    A                                      SPACEB(001)                  
    A            ZPARTN        15A  O    +2                             
    A            ZPBEZ1        40G  O    +1FONTNAME('Monotype Sans WT' +
    A                                      (*POINTSIZE 10.0)) +         
    A                                      CCSID(13488 *NOCONVERT)      
    A            ZPZTEU        11A  O    +1                             
    A            ZPHELA         3A  O    +1                             
    A            ZPMENG         8S  O    +7                             
    A            ZPNGEW         8S 2O    85                             
    A            ZPTGEW         8S 2O    97                             
    A            ZPLTNO        10A  O    +4                             
    A            ZPPANO        10A  O    +2                             
    A            ZPBEZ2        30A  O    23                             
    A                                      SPACEB(001)                  
    A            ZPZTRU        11A  O    +1
    Im Programm dann einfach:
    Code:
    eval ZPBEZ1=azbzru
    Das Zielfeld ist ja jetzt auch Graphic.

    Wenn ich mir den Spool angucke, sind da auch nicht anzeigbare Zeichen drin.
    Drucken geht dann halt nicht.


    Ich glaube, die *SCS Methode verspricht eher Erfolg.
    Gruß
    Martin

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Hier laufen verschiedene Sachen zusammen.

    %CHAR wandelt natürlich falls möglich in die Job-CCSID um. Steht diese auf *HEX wird die Default-CCSID verwendet.

    Fontname wird soweit ich nachgelesen habe nur mit AFPDS, Hosttransform bzw. IPDS-Druckern mit Rasterarchitektur oder PDF-Ausgabe unterstützt.
    Die Fonts müssen aber korrekt installiert und vorhanden sein.
    Bei der Umwandlung als *SCS werden dir ggf. Warnhinweise ausgegeben wenn Schlüsselworte ignoriert werden.
    Klappt auf diesem Wege z.B. die PDF-Ausgabe und diese ist auch dann korrekt zu lesen, sollte es mit dem Drucker auch klappen.

    Um mittels Unicode (CCSID 13488) ohne Fontname zu drucken ist *CONVERT erforderlich, da ja der Unicode in die Ziel-CCSID (CHRID) konvertiert werden muss.

    Um also zur Laufzeit nicht noch andere Probleme zu bekommen (CCSID Kyrillisch ist nicht mit der CCSID der Datenbank kompatibel und beim Lesen/Open gibts CPF-Abbrüche), kann der Job also passend zur DB auf 273 stehen.
    Die CHRID des Spools sollte dann auf Kyrillisch überschrieben werden.

    Durch den Unicode werden die Daten korrekt durchgereicht.

    Dass du im Debugger die kyrillischen Zeichen nicht lesen kannst ist ganz normal.
    Wenn du dir dann aber den Inhalt mit Hex "eval Field:x" ansiehst kannst du den 2-Byte-Code prüfen.
    Hierzu kannst du dir die "Zeichentabelle" aus Windows heranziehen. In der wählst du eine Unicode-Schrift aus (z.B. Arial).
    In der erweiterten Ansicht kannst du den Zeichensatz für Kyrillisch auswählen.
    Beim anclicken eines Zeichens wird dir in der Statuszeile der Hexcode "U+XXXX" angzeigt der mit deinen Zeichen im Programm übereinstimmen sollte.

    Nun kommt es noch auf den Drucker an.
    Ohne Hosttransform kann Fontname nicht funktionieren da der Font als Grafik gesendet wird (wie in Windows).
    Über die CHRID wird eine ESC-Sequenz für die kyrillische Codepage gesendet.
    Das heißt nun schlussendlich, dass der Drucker selber einen residenten Schriftsatz für kyrillisch haben muss!

    Mittels Hosttransform und Fontname kannst du das ja auch mal ausprobieren.
    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
    Mar 2005
    Beiträge
    148
    Danke für deine Tipps, aber ich geb auf.
    Das hat keinen Sinn hier.

    Falls irgendwer das am laufen hat und ein Howto postet, guck ichs mir gerne nochmal an.
    Aber nach 1 Woche rumfrickeln hab ich keine Lust mehr auf das Thema.
    Gruß
    Martin

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Vielleicht ist das ja so, dass dein Drucker einfach kein kyrillisch kann.
    Frag mal den Lieferanten.
    Windows-Druck gilt hier nicht, da hier immer grafisch ausgegeben wird (TrueType).
    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

Similar Threads

  1. Drucken und Heften
    By Karo in forum NEWSboard Drucker
    Antworten: 14
    Letzter Beitrag: 28-07-09, 14:48
  2. Logos Farbig drucken AFP300
    By bechert in forum NEWSboard Drucker
    Antworten: 3
    Letzter Beitrag: 06-01-07, 10:57
  3. Query's drucken
    By dino in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 03-07-06, 10:44
  4. negative Rückmeldung mit Prüfdaten beim Drucken
    By horni in forum NEWSboard Drucker
    Antworten: 8
    Letzter Beitrag: 29-05-06, 11:32
  5. CA Anzeige drucken
    By Joe in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 27-04-06, 08:50

Berechtigungen

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