View Full Version : Drucken von tschechischen Sonderzeichen
Hallo miteinander,
ich habe mitlerweile alle Beiträge zum Thema gelesen, komme allerdings in meinem Fall immer noch nicht ans Ziel. Ich versuche unter der Sprache:929, Konfig Host-Codepage:1153 tschechische Zeichen drucken.
Es gibt viele Stellen an denen ich drehen kann und gedreht habe.
PLF Druckgenerator:
ZchId/U-Tab: 1153 / 1250
WRKDEVD:
Zeichen-ID:
Grafikzeichensatz : 1153
Codepage : 1250
WRKJOB (Drucker):
Sprachen-ID : CSY
Landes- oder Regions-ID : CZ
ID des codierten Zeichensatzes (CCSID) : 1153
Standard-ID des codierten Zeichensatzes : 1153
Steuerung für Zeichen-ID : *DEVD
USRPRF:
LANGID : CSY
CNTRYID : CZ
CCSID: 1153
CHRIDCTL : *JOBCCSID
SETJOBATR:
*DATFMT
*DATSEP
*TIMSEP
*SRTSEQ
*DECFMT
LOCALE:
/QSYS.LIB/CS_CZ.LOCALE
Ein paar Begriffe diesbezüglich sind mir immer noch Unklar. Mal habe ich es mit einer Codepage zu tun, Grafikzeichensatz, Zeichen-ID, CCSID...
Kann jemand einen Fehler entdecken, oder habe ich etwas übersehen?
Vielen Dank schonmal für die Hilfe.
Gruß Alex
Beim Drucken geht es nicht um die CCSID sondern um die CHRID, was aber im wesentlichen das selbe ist.
Die CHRID und damit der Druckerzeichensatz wird über die PRTF gesteuert.
CRT/OVRPRTF ... CHRID(.../*DEVD)
Bei *DEVD (Default) wird die CHRID des Druckers gewählt, was leider nur bei Device-Druckern geht. Bei Remote-OUTQ's kann man keine CHRID angeben, daher muss in diesem Fall die CHRID im PRTF angegeben werden.
Im WSCST wird an Hand der CHRID dann die ESC-Sequenz für die Codepage des Druckers gewählt.
D.h., der Drucker selber muss die Zeichensätze beherrschen.
Wichtig ist beim Drucken natürlich, dass die Zeichen auch richtig übergeben werden.
Beim Lesen aus der DB wird ggf. codegewandelt (CCSID nicht 65535), beim Schreiben in eine PRTF wird nicht mehr codegewandelt!
CCSID = Speicherform des Zeichensatzes
CHRID = Ausgabeform des Zeichensatzes
Codepage = CCSID
Font = Schriftart passend zur CHRID
Das entspricht wohl der Anleitung von syslap:
http://newsolutions.de/forum-systemi-as400-i5-iseries/newsboard-drucker/12526-esc-seq-im-wscst-f-r-hp-4250n.html
In Anlehnung an deine Beschreibung:
http://newsolutions.de/forum-systemi-as400-i5-iseries/newsboard-drucker/3021-hp-drucker-mit-deutsch-und-tschechisch.html
Das Vorgehen wäre jetzt in etwa, mir die Escape Sequenz vom Druckerhersteller für das entsprechende Modell zu holen und von Infor, bzw einem unabhängigen die (mir zu komplizierten) Änderungen vorzunehmen zu lassen. Oder ist das alles weniger schwer, als es auf den ersten Blick wirkt?
Gruß Alex
Von den Beiträgen her hast du schon das richtige gefunden und wenn du diese heranziehst kannst du es ja selber probieren.
Das schöne daran ist ja, das man nichts kaputt machen kann.
Aber wie sicher bist du eigentlich, dass du zum Zeitpunkt des Druckens auch tchechische Zeichen im Programm verarbeitest?
Morgen Fuerchau,
zumdindest habe ich bei der Anzeige die tschechischen Zeichen. Aber so richtig sicher bin ich mir da nicht.
Ich bin davon ausgegangen, dass jeder Wert einen Hex-code beinhaltet, den die Codepage umwandelt. Entsprechend der Anzeige und das selbe auch beim Druck machen kann. Wie kann ich überprüfen, ob ich tschechische Zeichen verwende?
Gruß Alex
Die WSCST-Quelle, die ich mir aus dem *HP4000 geholt habe enthält so, wie ich das sehe Codepage 852: Hier müste ich die die ESC-Sequenz vom Hersteller für Codepage 852 anfragen.
:CODEPAGE
CODEPAGE= 852
DATA ='1B28313755'X.
Was fehlt ist:
:EBCASCTBLE
EBCDICCP= 870
ASCIICP= 852
Wenn ich die ESC-Sequenz habe und in Hex-Zahlen umwandle, den EBACASCTBLE hinzufüge und die WSCST dem Drucker zuweise müsste dieser Schritt schonmal erledigt sein, oder? Ich tue mir noch etwas schwer, da ich sonst immer mit Codepage 1153 zu tun habe.
Die PRTF ist mit:
CCSID 1141
Zeichen-ID: CHRID
Grafikzeichensatz: 1153
Codepage: 1250
erstellt. Diese PRTF müsste dann noch mit OVRPRTF auf 852/852 einstellen. Die CCSID 1141 darf bleiben?
Wie kann ich sicher gehen, dass tschechische Zeichen vom Programm verarbeitet werden?
Gruß Alex
852 ist ein ASCII-Code und kann auf der AS/400 nur im IFS verwendet werden.
Die CCSID ist ebenso dann auf 870/1153 zu stellen, du musst natürlich auch im WSCST das Mapping von 1153 zu 852 einstellen oder für die PRTF eben 870 verwenden.
Der ESC-Code für PCL ist meistens so schon korrekt.
Estmal Danke Fuerchau für die Hilfe,
Nächste Hürde:
Ich muss das WSCST Objekt in die OUTQ und DEVD einbinden oder angeben.
Im CHGDEVD/CHGOUTQ +F4 habe ich keinen Eintrag gefunden, die ich vornehmen kann?
CHGOUTQ OUTQ() MFRTYPMDL(*WSCST) WSCST()
und equivalent CHGDEVD hat nicht funktioniert.
Was mache ich falsch?
Gruß Alex
CHGDEVPRT
Hasttransform (TRANSFORM) und Modell (MFRTYPMDL) werden natürlich nicht geändert, das Datenstationsanpassungsobjekt WSCST ist eine Zusatzoption.
Hast du eine Remote-OUQ gilt hier das selbe.