itext5:非英语连字符不起作用

Posted

技术标签:

【中文标题】itext5:非英语连字符不起作用【英文标题】:itext5: non-English hyphenation not working 【发布时间】:2020-11-03 22:38:08 【问题描述】:

我正在使用 itext5 在 java 中生成 PDF。当我使用 'en' HyphenationAuto 对象时,断字效果很好。 xml jar 在类路径上。在调试器中,对象是非空的。

当我切换到使用“qq”作为语言(无意义的代码)时,调试器中的连字符对象为空,正如预期的那样,因为用于连字符的 xml jar 没有名为 qq.xml 的文件。

但是当我使用法语连字符而不是英语连字符时,它根本无法连字符。

当我切换到使用“fr”作为语言时,调试器中的连字符对象是 non-null,正如预期的那样,这表明至少它正在从底层 jar 中读取 xml 文件。但是输出 PDF 中没有出现断字。

这表明输入文本数据存在问题,但我看不到任何问题。文本数据中没有不间断的空格。

更改我的 JRE 的默认区域设置无效。

当我在法语文本中使用“en”连字符时,换行符处有连字符,但应用了错误的规则(并且显示)。这表明法文文本没有根本问题。

核心itext代码很简单:

private static final HyphenationEvent hyphen = new HyphenationAuto("en", "GB", 2, 2);
//...
Paragraph para = new Paragraph();
para.setAlignment(Element.ALIGN_JUSTIFIED); 
para.setHyphenation(hyphen);
Chunk chunk = new Chunk(paragraphText);
para.add(chunk);
doc.add(para);

【问题讨论】:

【参考方案1】:

对我来说,解决方法是获取更新版本的 jar。

我从 5.1.0 升级到 5.1.1。

我从here下载了5.1.1 jar。

也许我有一个损坏的 5.1.0 jar 版本。

【讨论】:

以上是关于itext5:非英语连字符不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为什么UTF-8字符在jquery textcomplete中不起作用?

jQuery dataTable 搜索值“活动”不起作用

如果文本是在 textarea 中生成的,则 Javascript 字数统计功能不起作用

IOS 框架本地化不起作用

试图让我的代码只输入数字值,如果它输入一个非数字值,它会打印你输入了一个非数字值,但它不起作用

Xcode 5/iOS 7 - 本地化在模拟器中不起作用