PDA

View Full Version : ucs2 prtf chinesisch drucken



Seiten : [1] 2

inchic
25-01-10, 12:27
Hallo,

ich versuche ein Printerfile zu erstellen, dass die Felder aus einer Datei in CCSID13488 ausdrucken soll. Ich habe in der PRTF die jeweiligen FElder als G mit CSSID(13488) definiert und mache einen crtprtf als *AFPDS.
Wenn ich dann das pgm ausführe, dann druckt er mir die Texte der FElder die keine chinesischen zeichen sind ganz normal aus, aber die chinesischen Zeichen druckt er mir nicht aus, sondern lässt das Feld leer. Generell kann der Drucker chinesische Zeichen drucken.
Spreche ich den Drucker falsch an? oder habe ich die Felder falsch definiert? vielleicht unvollständig? denn ich habe keinen Fontname oder Fntchrset angewandt, weil ich den unterschied der beiden nicht wirklich verstehe und weil ich nicht weiß welche parameter ich am besten übergib.

ich bin für jede Information dankbar.

Fuerchau
25-01-10, 12:38
UCS2 kann native gar nicht gedruckt werden.
Hierfür sind OpenType/TrueType-Fonts im IFS erforderlich, sowie die Angabe des DDS-Schlüsselwortes FONTNAME.
FONTNAME (Font name) keyword in printer files (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzakd/rzakdmstfontname.htm?resultof=%22%66%6f%6e%74%6e%6 1%6d%65%22%20%22%66%6f%6e%74%6e%61%6d%22%20)
Unterstützt wird das dann allerdings nur von Hosttransform mit PCL5/6-kompatiblen Druckern oder PSF/400 mit PDF-Ausgabe.

Ansonsten:
FONT übergibt eine ID, die per WSCST eine Druckerschrift auswählt (nur AFPDS mit SBCS).
FNTCHRSET gilt nur für originäre IBM-IPDS-Drucker und bestimmt eine Fontressource (WRKFNTRSC).

inchic
25-01-10, 13:05
Danke für die schnelle und tolle erklärung.

jetzt habe ich das problem, dass ich nicht weiss wie ich nachschauen kann, ob im IFS die OpenType-trueType Fonts vorhanden sind.
und mein zweites Problem ist, dass ich nicht weiss welchen Font ich brauche. IBM-Erklärung listet ja einige TrueTypeFonts auf, jedoch sagen mir die namen nichts, so weiss ich nicht mit welchem von denen ich chinesische zeichen drucken kann.

Fuerchau
25-01-10, 13:12
Stimmt, darüber schweigt sich die Literatur leider aus, bleibt wohl nur auszuprobieren und ggf. Fonts auf dem Markt zu kaufen (ggf. funktionieren auch die Windows-Fonts, wenn du da einen chinsischen hast).

Hier die Links:
TrueType and OpenType fonts (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzau6/rzau6ttfonts.htm?resultof=%22%74%72%75%65%74%79%70 %65%22%20%22%74%72%75%65%74%79%70%22%20)

TrueType fonts on OS/400 V5R2 (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzau6/rzau6tt52.htm#rzau6tt52)

inchic
25-01-10, 14:25
danke nochmal.
es hat geklappt.

PS: hier habe ich gefunden welche TTFs für Chinesisch sind. Google-Ergebnis für http://support.sas.com/documentation/cdl/en/lrcon/61722/HTML/default/images/freetype4a.gif (http://images.google.de/imgres?imgurl=http://support.sas.com/documentation/cdl/en/lrcon/61722/HTML/default/images/freetype4a.gif&imgrefurl=http://support.sas.com/documentation/cdl/en/lrcon/61722/HTML/default/a002989974.htm&usg=__OftOwEb2Acizw2vsVZ84_nkoeV8=&h=342&w=345&sz=10&hl=de&start=4&um=1&tbnid=c_60qWtykbQ8kM:&tbnh=119&tbnw=120&prev=/images%3Fq%3DMonotype%2BSans%2BDuospace%2BWT%2BSC% 26hl%3Dde%26sa%3DN%26um%3D1)

Fuerchau
25-01-10, 17:33
Jetzt weiß ich endlich, was dieses SC im Fontnamen heißt (Monotype Sans WT SC).

Kannst du mal einen Auszug deiner PRTF hier posten ?
Bisher wusste ich nur in der Theorie, wie es funktioniert. Real habe ich das noch nicht gesehen.
Das würde auch anderen helfen.

inchic
26-01-10, 08:43
ARTESTF1
Akontante1 15G 1
A FONTNAME('Monotype Sans WT SC' +
A (*POINTSIZE 12.0)) +
A CCSID(13488 *NOCONVERT)
ASPACEB(001)
ASPACEA(001)
Akonstante2 5G 1
AFONTNAME('Monotype Sans WT SC' +
A(*POINTSIZE 12.0)) +
ACCSID(13488 *NOCONVERT)
ASPACEA(001)
A 1'SEITE'
A 7PAGNBR EDTCDE(Z) SPACEA(1

inchic
26-01-10, 08:56
Hallo Fuerchau,
gibt es Möglichkeiten, die prtf sprachunabhängig aufzubauen mit unicode utf16.
also, wenn ich eine datei mit ccsid 1200 habe, einen fähigen Drucker, und eine prtf, die die Inhalte der datei ausgeben soll. Der Inhalt kann sowohl chinesische zeichen als auch arabische enthalten, Schwedisch, Englich,Russisch oder Deutsch sein.
Wie gehe ich das in meinem programm an?
gibt es da einen font der die meisten Sprachen abdeckt? oder hilft mir da das cdrcvrt? PS: diese API verstehe ich nicht.

bin weiterhin für jede Idee oder Information dankbar

Fuerchau
26-01-10, 10:27
Fonts unterstützen leider kein UTF16 sondern nur UCS2, da max. 65.000 Schriftzeichen in einem Font möglich sind.
Nur für asiatische Schriften gibt es leider mehrere Varianten.

In den meisten Unicode-Schriften ist fast alles enthalten.

In der PRTF kann man aber die Fontnamen auch als Variable übergeben (P-Feld).
Dadurch kann man natürlich sehr flexibel drucken und je nach Kunden die Schriftart über Parameter einstellen.
Diese sollten natürlich auch installiert sein.
Man kann auch eigene Schriften in /QIBM/UserData/OS400/Fonts/TTFonts installieren.

In den asiatischen Schriften sind die westeuropäischen enthalten.
Wie es mit baltisch, russisch, kyrillisch usw. aussieht kommt halt auf den jeweiligen Font an.

inchic
26-01-10, 10:35
Danke,

was ist eigentlich mit dem prtf-keyword UNISCRIPT, kann ich nicht auch damit arbeiten.
Ich habe bisher nirgends einen Beitrag zu uniscript gesehen?