【发布时间】: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);
【问题讨论】:
标签: java itext hyphenation french