【问题标题】:XSL-FO: Table layout tweakingXSL-FO:表格布局调整
【发布时间】:2010-07-27 15:39:52
【问题描述】:

这是我的问题,我有一张这样的桌子

这是一个列标题 (A) |另一个列标题 (B) |页眉 (C) |另一列标题 (D) -------------------------------------------------- ------------------------------------------------ 值 A |价值 B |价值 C |值 D

问题是,A 和 C 列中的值可能很长,而 B 和 D 中的值可能很短。我不介意标题或值是否换行 - 所以理想情况下,我希望一个典型的表格如下所示

这是一个列标题 (A) |另一个 |页眉 (C) |其他 |专栏 | |柱子 |标题 (B) | |标题 (D) -------------------------------------------------- -------------------------------------------------- ------ 值很长很冗长,bla bla |价值 B |值C - 这很长|值 D bla bla bla - 看到它包装| | |

基本上,我希望列标题优先包装到表格数据单元格中的值。我不能简单地将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

【问题讨论】:

    标签: xsl-fo


    【解决方案1】:

    我不确定您使用的是哪个渲染引擎。但是如果它支持table-layout="auto"(大多数商业引擎都支持),这可能会给您带来比您现在得到的结果更好的结果。没有任何明确的换行符。

    查看XSL specification for table-layout property 和对应的CSS2 specification

    【讨论】:

    • 我正在使用 Ibex xmlpdf.com。它的默认值是使用 table-layout="auto" 但是看看文档,我想我可以试试 table-lyout="fixed" 看看我是否能得到更好的结果。
    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2013-01-14
    • 2015-06-14
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    相关资源
    最近更新 更多