2010-07-27 83 views
2

这里是我的问题,我有这样的XSL-FO:Table布局调整

 
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列比第2列窄。

任何帮助将不胜感激。

PS - 我使用的是北山羊渲染引擎http://www.xmlpdf.com

回答

1

我不知道你使用的渲染引擎。但是如果它支持table-layout="auto"(这是大多数commersial引擎的做法),这可能会给你一个比你现在得到的结果更好的结果。没有任何明确的换行符。

XSL specification for table-layout property和相应CSS2 specification

+0

我正在使用Ibex http://www.xmlpdf.com/。它默认是使用表格的布局=“自动”,但有一个看看文档让我再想可能会尝试表lyout =“固定”,看看我能得到更好的结果。 – 2010-07-28 14:01:29