FOP:fo:块宽度属性被忽略了吗?

时间:2009-05-20 16:36:17

标签: xslt xsl-fo apache-fop

我正在设法使用谷歌图表中的一个折线图生成PDF,但生成的列标题的质量不符合我们的需求,所以我想自己生成。

此任务应使用[fo:table]完成,但我无法成功定位标题(宽度和边距/填充)。

总之,我想使用[fo:block]设置宽度属性加上负边距(即width="1.5cm" margin-top="-2em")来设置标题,但宽度不会生效。

你知道怎么做吗?

感谢。

3 个答案:

答案 0 :(得分:15)

“width”属性不适用于fo:block(请参阅http://www.w3.org/TR/xsl11/#fo_block)。如果要重新定义宽度,则需要使用fo:block-container(http://www.w3.org/TR/xsl11/#fo_block-container)或生成所谓参考区域的其他元素。要了解您的预期布局究竟是什么有点困难。也许您也可以尝试使用“start-indent”和“end-indent”属性来间接影响fo:block的实际宽度。 HTH

答案 1 :(得分:1)

最后我无法做到这一点,因为[fo:inline]试图收集所有可用空间。

一个技巧是将边距(左边或右边)加到90%或更多填充这个间隙,但我不知道以前的[fo:inline]文本是在一个文本中呈现的,两行或更多行。

我发现生成列标题的唯一方法是使用[fo:table]并为每个单元格添加边距(左和右)。

PS:我使用FOP-0.95

答案 2 :(得分:-10)

对于FOP,您可以使用表格来设置宽度,而不是直接在块上应用它。