views:

147

answers:

2

hello

i have a java applet application in which i use rich text area . i write URDU the national language of PAKISTAN. i managed to do so with uni codes. the problem is, when i write urdu in text area and select a font and color for each line it do all of this but when i save this file using UTF-8 encoding and then open it again it shows all text formatted as i choose format of last line.

my requirement is to open file as it is saved. i mean each file should have same formatting as i done before saving.

i m still suffering with this problem even after bounty can any one help!!! dated 07-06-2010.

+1  A: 

See, when you actually format text using some font and color, it will generate some RTF/HTML code right? You should try to get the RTF/HTML of the text area so that all your formatting can be saved in a file.

Basically all its a text file, so you need to get it with all code right?

Check this link for RTF formatted text saving mechanism.

http://stackoverflow.com/questions/2725141/java-jtextpane-rtf-save

Also check HTMLEditorKit for more info.

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/text/html/HTMLEditorKit.html

thanks.

Paarth
i am able to save the file but its format is not as i required i can't open it again as i saved it still problem exist.
moon
A: 

UTF-8 is an assignment of codes to characters. For convenience a decision was made that the lowest 127 codes are the same in ASCII and UTF-8. For all characters the codes differ.

UTF-8 Fonts have a character map (cmap) which assigned unicode code to their glyphs. There are very few fonts that cover large portions of the unicode range (Arial Unicode and Gentium i know, there are some others), and to get full coverage in a rendering solution, you have to mix fonts.

To be able to display arbitray Unicode texts, you therefore have to create a set of fonts with one as the default font and fallback fonts for the unicode characters that are not contained the default font. Back to Java and your Textpane: If you select a font for a given part of text in your Textpane, this only means that to render the text glyph are used from the selected font. But the text itself is not associated with the font in any means.

So you have two options:

  1. You don't just store the UTF-8 text, but also information about the selected font, or
  2. more interesting: You store the text simply as UTF-8 and apply fonts after loading the text into your textpanel!
Daniel