Converting formatted documents (e.g. RTF file) from one font to another is more complicated than converting plain text from one character set to another. In theory all fonts of the same character set must define the same character at the same position in the font table. In practice, fonts may have different characters at the same location in the font because of design errors. An example is VNI fonts for Windows. As far as Vietnamese characters are concerned, VNI defines them at fixed locations in the font table. However, this is not true of foreign characters. They jump from one slot to another depending on the font.
Thus to convert formatted documents correctly, WinVNKey has to rely on the exact mapping from individual fonts to Unicode. Therefore, each font must be associated with a conversion file, which specifies the mapping from all font characters to Unicode. In this sense each font behaves like a character set in itself. Because it is impossible to know in advance the variation in all fonts, WinVNKey has to make the best guess and leave the final decision to users, who must know their fonts better than WinVNKey. Therefore, the user interface allows users to specify or define the conversion file and modify it to make sure the conversion is correct.
The user interface for RTF conversion is similar to plain text conversion, except that RTF conversion is supported for files only. This section covers only the difference.
For RTF conversion the user has to specify the names of the source fonts and destination fonts instead of character sets. This is accomplished by selecting a font replacement table. All font replacement tables are stored in text files with extension .ini as follows:
<INSTALLDIR>\FontReplace\<Table Name>.ini
To see the detailed mapping of which fonts are converted to what, the user can click on the "Table" hyperlink to display the Replace Fonts page.
If the conversion is wrong, it is perhaps the character sets associated with fonts are wrong. The user can fix this association in the Check Charsets page.
If the character sets are all correct, it is perhaps the mapping from character sets to Unicode is wrong. The user can fix this mapping in the Check Unicode Conversion page.
Because WinVNKey relies on font names and not on character sets, it is able to handle RTF files that contain fonts from more than one character sets and can handle character errors in fonts of the same character set easily.