Я думаю, что единственным решением будет разметка XSL FO, которая будет выглядеть следующим образом:
<fo:block hyphenate="true">
<fo:inline>I am some text that can be hyphenated. </fo:inline>
<fo:inline keep-together.within-line="always">I</fo:inline> <fo:inline keep-together.within-line="always">am</fo:inline> <fo:inline keep-together.within-line="always">text</fo:inline> <fo:inline keep-together.within-line="always">that</fo:inline> <fo:inline keep-together.within-line="always">isn't</fo:inline> <fo:inline keep-together.within-line="always">hyphenated</fo:inline>.
</fo:block>
Теоретически, установите переносы для всего блока и любого потомка fo:inline
, которые должны храниться вместе в указана строка (слово за словом). Теперь то, как вы попадаете с каким-то шаблоном, вероятно, не совсем понятно, учитывая, что, возможно, являются границами слов, а что такое пунктуация и тому подобное.
Это потребует некоторого тестирования. Вам также может понадобиться поместить символы пробела или дополнительные строчные элементы между словами с пробелом.
Обновление 1
Я использовал вышеизложенное и создал простой FO. Форматирование с помощью RenderX Я получаю то, что ожидал, даже меняя поля спома, я могу получить переносы в областях, где он не отмечен, и ни в области, где установлены хранилища.
Вывод RenderX:
Используя точно такой же шаблон (даже настраивая поля несколько раз, потому что каждый форматер отличается, когда дело доходит до окончания строки), я не могу получить никаких переносов в FOP ,
Вывод FOP:
Вывод заключается в том, что существует проблема в использовании FOP и попытке выполнить то, что я сказал как Обходной путь.
Обновление 2
Для RenderX и AHF, как указано ниже, установка переноса для fo: inline работает. Вот вывод из RenderX с использованием этого:
<fo:block hyphenate="true">
<fo:inline>I am some text that can be hyphenated. I am some text that can be hyphenated. I am some text that can be hyphenated. </fo:inline>
<fo:inline hyphenate="false">I am some text that cannot be hyphenated. I am some text that cannot be hyphenated. I am some text that cannot be hyphenated. </fo:inline>
</fo:block>