【问题标题】:iText, unicode characters and JavaiText、Unicode 字符和 Java
【发布时间】:2012-09-14 15:08:34
【问题描述】:

我有一个文本编辑程序,可以将其输出保存到 PDF 文件中。

它还将所有文本保存到 PDF 字典中,以便再次阅读。 问题是在我的母语中,像 č,ć,đ,ž,š 这样的字符很常见......

当我在我的程序 GUI 中编写这些字符时,很好,它们都出现了(我(目前)使用 java 的 arial 字体)。

当我保存并打开 PDF I Adob​​eReader 时,č i ć 缺失,đ、ž 和 š 打印正常。我正在使用自定义(truetype)字体(BookAntiqua,从here 下载。

这是编码的问题,还是字体本身的问题(它不支持đ、ž、š字符)?

另外,当我再次将 PDF 加载到我的程序中时,仍然缺少丢失的字母,并且 đ、ž、š 与 ⎕ 符号和类似符号交换...这是 PDF 编写方式的问题还是还有其他问题?

底线是,我希望这五个字符在我的程序 GUI 和 PDF 文档中可见,并且它们可以从 PDF 的字典中正确检索。

【问题讨论】:

    标签: java fonts itext


    【解决方案1】:

    我遇到了同样的问题。我已经解决了更改支持这些字母的字体,忘记了名字,也许是 Arial unicode? - 需要试验那是什么字体 - 而不是我将该字体嵌入到 pdf 中。那是完美的。我的名字中有一些奇怪的字符:)

    编辑: 有一个示例here 怎么做,也为字段设置它,here 另一个代码 sn-p,这可能会有所帮助。

    【讨论】:

    • 我知道如何将字体嵌入到PDF中,这不是问题,看来问题出在我正在使用的字体上......我已经找了一段时间了...... . 你能给我推荐任何类似于 BookAntiqua 或 TimesNewRoman 并且也支持 unicode 字符的字体吗?
    • @IvanKarlovic 不,我忘记了名字,好像是 6 年或更长时间。当然,如果您将字体更改为正确的字体并嵌入 pdf 将解决问题,但您需要谷歌它。这是一个列表en.wikipedia.org/wiki/Unicode_font
    • 我找到了字体,它确实有帮助,但它并没有解决我的问题。从 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; }
    • 也许 "Ć", "\u0106" 会修复? :) '/u' vs '\u' 在 public static String unicodize 函数中反斜杠
    猜你喜欢
    • 1970-01-01
    • 2016-09-02
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多