XSL-FO: настройка таблицы - PullRequest
2 голосов
/ 27 июля 2010

Вот моя проблема, у меня есть такая таблица

This is a column header (A)  | Another Column header (B) | Header (C) | Another column Header (D)
--------------------------------------------------------------------------------------------------
Value A                      | Value B                   |  Value C   | Value D

Дело в том, что, скажем, значения в столбцах A и C могут быть очень длинными, тогда как значения в B и D могут быть оченькороткая.Я не возражаю против переноса заголовков или значений - поэтому в идеале я хотел бы, чтобы типичная таблица выглядела следующим образом

This is a column header (A)             | Another       | Header (C)                        | Another 
                                        | Column        |                                   | column 
                                        | header (B)    |                                   | Header (D)
----------------------------------------------------------------------------------------------------------
Value is very long and verbose, bla bla | Value B       | Value C - this to is quite long   | Value D
bla bla bla - see it wrapped            |               |                                   |

По сути, я бы хотел, чтобы заголовки столбцов упаковывали в предпочтении к значениям в ячейках данных таблицы.Я не могу просто применить атрибут wrap-option="no-wrap" к ячейкам таблицы - поскольку страница недостаточно широка, чтобы вместить весь длинный текст.

Я попытался указать атрибут proportional-column-width для столбцов - но это не такидеально, так как я не знаю, какие столбцы будут содержать самый длинный текст при любых обстоятельствах.

Лучшее решение, которое я нашел на данный момент, - это явно ставить разрывы строк в тексте заголовка столбца, но этоимеет нежелательный побочный эффект, который, по-видимому, увеличивает ширину столбца на достаточное количество.См. http://snipplr.com/view/37957/xslfo-to-make-a-table/ для примера.Это производит этот вывод http://imagebin.org/106996.Обратите внимание, что столбцы 3, 4, 5, 6 и 7 имеют довольно щедрый отступ, а это означает, что столбцы 1 и 2 уже, чем они могут быть.

Любая помощь будет принята с благодарностью.

PS - Я использую движок рендеринга Ibex http://www.xmlpdf.com

1 Ответ

1 голос
/ 28 июля 2010

Я не уверен, какой движок рендеринга вы используете. Но если он поддерживает table-layout="auto" (что делает большинство коммерческих движков), это может дать вам лучший результат, чем тот, который вы получаете сейчас. Без каких-либо явных разрывов строк.

См. Спецификацию XSL для свойства макета таблицы и соответствующую спецификацию CSS2 .

...