October 17th, 2003, 03:47 AM
Unicode printing in Kylix
I am trying to print some east-european characters using
Printer.Canvas.TextOut but instead of each desired character I am getting
two different characters - as if unicode is ignored. I have set
canvas.font.charset to fcsunicode. Whether I print to paper or to a
postscript file, I get the same. I doubt it has anything to do with the
printer driver (Epson LQ-100) settings because from Mozilla I can print the
characters just fine.
When I compared the postscript files generated by Mozilla and my Kylix
program, I noticed that Mozilla converted parts of text containing unicode
characters into byte codes, something like this:
( 140/000/155/000/166/001 ) unicodeshow
Where unicode characters ended up having the second byte > 000.
Meanwhile, text that didn't contain unicode characters turned out like this:
( sometext ) show
In my program's output, I could see all text, none was converted into codes
like above, and since the viewer (GEDIT) was able to show unicode
characters, I saw them on the screen correctly.
Thanks in advance for any suggestions.
Comments on this post
October 19th, 2003, 02:02 PM
Instead of fcsUnicode (which I used because Linux treats EASTEUROPE_CHARSET as fcsUnicode and
I use EASTEUROPE_CHARSET under windows) I should have used fcsLatin2.
I still have a similar problem with Menus - top level of the menus (the always visible part) shows unicode characters, submenus don't.