【问题标题】:FOP: fo:block width attribute ignored?FOP: fo:block width 属性被忽略?
【发布时间】:2010-10-27 16:51:33
【问题描述】:

我正在设法从 google-chart 生成一个带有一个折线图的 PDF,但是生成的列标题的质量不符合我们的需求,所以我想自己生成。

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

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

你知道怎么做吗?

谢谢。

【问题讨论】:

    标签: xslt xsl-fo apache-fop


    【解决方案1】:

    “宽度”属性不适用于 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 的实际宽度。高温

    【讨论】:

    • 我几乎尝试了任何东西:fo:inline-container、max-width、border-before-precedence、last-line-end-indent 以及更多组合,但我没有尝试过你的组合.我给你一个+1,因为它听起来是正确的。非常感谢您的回答。
    【解决方案2】:

    最后我没能做到,因为 [fo:inline] 试图收集所有可用空间。

    一个技巧是将边距(左侧或右侧)设置为 90% 或更多以填充该间隙,但我不知道之前的 [fo:inline] 文本被呈现在一个, 两行或多行。

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

    PS:我使用 FOP-0.95

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 没有人使用 xsl:fo 因为他们想... 不幸的是,HTML 表单对于电子邮件来说很糟糕,打印也好不了多少。有了 PDF,您就知道自己得到了什么。
      • 我使用 XSL-FO 来呈现餐厅菜单。
      猜你喜欢
      • 2011-10-28
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多