PDA

View Full Version : Euro Zeichen im PDF



Hubert
17-06-21, 14:59
Guten Tag,

wir haben bisher ein Spoolfile über ein externes Windows Programm in PDF umgewandelt. Jetzt soll ich das direkt auf der AS/400 machen. Das läuft auch richtig gut - nur das Euro Zeichen wird nicht korrekt gedruckt. Das ist ein Kreis mit vier Strichen. Das Printerfile wird zur Laufzeit überschrieben:

'OVRPRTF FILE(WIN485PL) ' +
'OVRSCOPE(*JOB) ' +
'DEVTYPE(*AFPDS) ' +
'FRONTOVL(LOGO4) ' +
'CVTLINDTA(*YES) ' +
'TOSTMF(''meineDatei' +
%trim(zzAuftrag) + '.PDF'') ' +
'WSCST(*PDF)';

Im Spoolfile wird das Euro Zeichen korrekt dargestellt. Hat jemand eine Idee, woran das liegen kann?

Herzlichen Dank im Voraus
Hubert

Fuerchau
17-06-21, 15:05
Das hat wie immer mit der Codepage zu tun.
Wenn dein Job über eine korrekte CCSID und nicht *HEX läuft, kannst du versuchen mit CHRID(*JOBCCSID) die Umwandlung zu präzisieren.
U.U. läuft dein Job mit 273, da gibts kein €, mit 1141 könnte es besser klappen.
Du musst bedenken, die PDF wird in ANSI oder UTF8 erstellt, die SPLF ist bis vor dem tatsächlichen Ausdruck immer noch in EBCDIC.

Hubert
18-06-21, 06:32
Schade, das wars nicht. Auch nach dem Wechsel der CCSID auf 1141 wird dieses sonderbare Zeichen statt des Eurozeichens ins PDF aufgenommen.

DKSPROFI
18-06-21, 06:58
Moin,

versuchs mal mit

OVRPRTF ....(CHRID(273 1141) usw.

mfg

DKSPROFI

camouflage
18-06-21, 07:02
Wenn das Zeichen im Spoolfile dargestellt wird, denke ich nicht dass es an der CCSID liegt. Vielmehr erfolgt eine Konvertierung des Spools vermute ich. Bringt dir das was, wenn Du "CVTLINDTA(*YES)"
in "CVTLINDTA(*NO)" änderst und allenfalls den RPLUNPRT auch noch prüfst.

Hubert
18-06-21, 08:00
Ich habe jetzt die CCSID 1141 direkt in der Überschreibung angegeben. Und es funzt.

Ich danke euch allen für die Tipps.

Hubert

Fuerchau
18-06-21, 09:21
Was u.U. mit "CHGJOB CCSID(1141) und OVRPRTF .... CHRID(*JOBCCSID)" auch funktioniert hätte.
Das Problem bei Spools ist generell, dass die CHRID meist auf *DEVD steht und somit keine Codewandlung durchgeführt wird. Diese erfolgt dann erst im Druckertreiber (Hosttransform, PDF, Gerät).
Mittels CRTPRTF ... CHRID(*JOBCCSID) kann man dieses Problem genereller lösen.

Hubert
21-06-21, 12:16
Dank Eurer Unterstützung funzt es, aber es gibt ein weiteres Problem: einige PDF Ausgaben werden in polnisch oder tschechisch benötigt. Was muss ich da bei der Überschreibung als CHRID angeben. Die Printerfiles für diese Drucke sind mit CHRID(959 1153) definiert.

Fuerchau
21-06-21, 17:12
Da ist dann 1153 anzugeben.
Allerdings muss dein Job die Daten bereits in 1153 liefern.
Zwischen Job und PRTF erfolgt keine Codewandlung!
Also muss dein Job auf 1153 stehen und die Daten aus der DB in 1153 konvertieren.
Noch besser wäre es, die PRTF in Unicode CCSID 1200 zu erstellen.