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

itext5: non-English hyphenation not working

我正在使用 itext5 在 java 中生成 PDF。当我使用 'en' HyphenationAuto 对象时,断字工作正常。 xml jar 在 class 路径上。在调试器中,对象是非空的。

当我切换到使用 'qq' 作为语言(废话代码)时,调试器中的连字符对象为空,正如预期的那样,因为用于连字符的 xml jar 没有名为qq.xml.

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

当我切换到使用 'fr' 作为语言时,调试器中的断字对象如预期的那样是 non-null,这表明至少它正在读取xml 来自底层 jar 的文件。但是输出 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);

我的解决方法是获取更新版本的 jar。

我从 5.1.0 升级到 5.1.1。

我从 here 下载了 5.1.1 jar。

也许我的 5.1.0 jar 版本损坏了。