Я использую Docbook-XSL и Apache FOP для создания PDF-документов, содержащих таблицы. С настройками по умолчанию таблицы имеют столбцы фиксированной ширины и строки, переносимые на границах слов. Но если слово длиннее ширины ячейки, оно переполняет ячейку. Я бы хотел разбить слова на нескольких строках в таком случае. Как это можно сделать?XSL-FO: упаковка длинных слов в ячейке таблицы
Перенос не является решением, так как слова не обязательно должны быть на английском языке. (Изменить: перенос на другие языки также не является решением. Не может быть заранее известно, на каком языке находятся данные, и могут быть слова, которые нельзя переносить, например, числовые строки.)
Я нашел предложения использовать keep-together.within-column="always"
для fo:table-row
s, но это не показало никакого эффекта.
(Edit :) Другое предложение заключалось в том, чтобы вставить пробелы нулевой ширины между всеми символами. Но это также прерывает короткие слова в середине слова. Мне понадобилось бы решение, которое по возможности прерывалось бы на границах слов, а среднее слово - только тогда, когда это необходимо.
Я отредактировал мой вопрос выяснить, почему эти решения не являются идеальными для меня. – laurt
См. Второе решение в http://stackoverflow.com/questions/4350788/xsl-fo-force-wrap-on-table-entries/33689540#33689540, которое вставляет '& # x200B;' после каждого тринадцатого непространственного персонаж. –