Предупреждение FOP: строка 1 абзаца переполняет доступную область более чем на 50 пунктов - PullRequest
4 голосов
/ 29 сентября 2011

Просто чтобы убедиться, что я хотел бы поделиться с вами своим пониманием FOP vre 1.0, FOP использует автоматический алгоритм переноса строк, т.е. когда данные переполняют ширину ячейки таблицы, FOP ищет пробелы в данных и, еслинаходит пробел, затем он переносит данные, которые переполняются из ближайшего пробела, в следующую строку этой ячейки.

Но что, если у данных нет пробела, тогда FOP не сможетобернуть данные.Это проблема, с которой я сталкиваюсь.

Я пишу этот код.

<fo:table-cell border="solid">
<fo:block hyphenate="true" language="en" wrap-option="wrap">
<xsl:value-of select="welcomeMsg"></xsl:value-of>
</fo:block>
</fo:table-cell>

, но он переполняется из ячейки таблицы, вместо переноса, потому что welcomeMsg - длинная строка без пробеловмежду ними. Мне нужно, чтобы welcomeMsg был обернут внутри ячейки таблицы.

1 Ответ

2 голосов
/ 30 сентября 2011

В Apache FOP реализован алгоритм Unicode UAX # 14 для разрыва строки. Таким образом, если слово (или более длинное число) не может быть разбито и, следовательно, переполняет ячейку таблицы, это из-за этого алгоритма. Обычный обходной путь - вставить пробелы нулевой ширины (&#x200B;) в поля, которые, как вы знаете, могут вызвать переполнение. Это легко сделать через XSLT. См. Также: XSL-FO: принудительное наложение на записи в таблице

...