Java PDF 格式中的 XSL-FO 断字

Java XSL-FO hyphenation in PDF formatting

我有一个 Java 程序可以生成一个 XML 文件,该文件被呈现为 PDF。问题是我似乎无法使用连字符。

我已经简要地阅读了https://www.w3.org/TR/xsl/#d0e26492,但我仍然不明白为什么我不能让我的文字连字符。我已经尝试在几乎所有块中插入 hyphenate="true",但诸如“AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...”之类的字符串仍然超出范围。我也尝试设置 languagelocale,但我真的不在乎断字发生在哪里,任何地方都可以。

断字通常基于断字字典 and/or 一种匹配已知字母序列并仅在允许的地方断开单词的算法。不同的语言有不同的断字习惯,甚至美式英语和英式英语也有差异。

像“AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...”这样的字符串不太可能匹配断字字典中的任何内容,因此实现不知道在哪里断开“单词”。

您可能想要一些类似于在 table 单元格中中断文本的解决方案;例如:

  • XSL-FO: Force Wrap on Table Entries
  • Wrap within table-cell with long word in FOP