我有一个文本编辑程序,它将输出保存到PDF文件中。
它也将所有文本保存到PDF字典中,可以从中再次读取。问题是,在我的母语中,如č、ć、đ、ž、š等字符非常普遍...
当我在程序的GUI中写入这些字符时,一切正常,它们全部显示出来(我目前使用java的arial字体)。
但是,当我保存并在AdobeReader中打开PDF文件时,č和ć就消失了,而đ、ž和š则按照应该的方式打印出来。我使用的是自定义(TrueType)字体(BookAntiqua,从此处下载)。
这是编码问题还是字体本身的问题(即它不支持đ、ž、š字符)?
另外,当我再次将PDF加载到程序中时,丢失的字母仍然丢失,而đ、ž、š则被交换为⎕符号或类似物...这是PDF编写方式的问题,还是还有其他问题?
总之,我希望这五个字符在程序的GUI和PDF文档中都能看到,并且能够正确地从PDF词典中检索出来。
它也将所有文本保存到PDF字典中,可以从中再次读取。问题是,在我的母语中,如č、ć、đ、ž、š等字符非常普遍...
当我在程序的GUI中写入这些字符时,一切正常,它们全部显示出来(我目前使用java的arial字体)。
但是,当我保存并在AdobeReader中打开PDF文件时,č和ć就消失了,而đ、ž和š则按照应该的方式打印出来。我使用的是自定义(TrueType)字体(BookAntiqua,从此处下载)。
这是编码问题还是字体本身的问题(即它不支持đ、ž、š字符)?
另外,当我再次将PDF加载到程序中时,丢失的字母仍然丢失,而đ、ž、š则被交换为⎕符号或类似物...这是PDF编写方式的问题,还是还有其他问题?
总之,我希望这五个字符在程序的GUI和PDF文档中都能看到,并且能够正确地从PDF词典中检索出来。
public static String unicodize(String string) { string.replace("Ć", "/u0106"); string.replace("ć", "/u0107"); string.replace("Č", "/u010C"); string.replace("č", "/u010D"); string.replace("Đ", "/u0110"); string.replace("đ", "/u0111"); string.replace("Š", "/u0160"); string.replace("š", "/u0161"); string.replace("Ž", "/u017D"); string.replace("ž", "/u017E"); return string; }
- Ivan Karlovic