XSL-FO - 图形和标题对齐

时间:2011-09-06 10:29:39

标签: xsl-fo

我希望以下代码将块与标题和图像对齐到中心,但它仍然与左边对齐。我正在尝试使用表格布局同样的东西,它也没有帮助。

<fo:block text-align="center">
    <fo:block text-align="left">
        <fo:external-graphic src="url('{imagedata/@fileref}')" content-width="scale-to-fit"
                scaling="uniform">
            <xsl:choose>
                <xsl:when test="imagedata/@width">
                    <xsl:attribute name="width"><xsl:value-of select="imagedata/@width" /></xsl:attribute>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:attribute name="width">60%</xsl:attribute>
                </xsl:otherwise>
            </xsl:choose>
        </fo:external-graphic>
        <fo:block font-weight="bold" space-after="0.5cm">
            <xsl:text>Figure </xsl:text>
            <xsl:value-of select="count(preceding::imageobject) + 1" />
            <xsl:text>: </xsl:text>
            <xsl:value-of select="caption" />
        </fo:block>
    </fo:block>
</fo:block>

2 个答案:

答案 0 :(得分:1)

您已经嵌套了中心,并且在前两个块的对齐方式上留下了。

这应该纠正它:

<fo:block text-align="center">
  <fo:block text-align="center">
    ...
  </fo:block>
</fo:block>

答案 1 :(得分:0)

我在antennahourse.com中看到了一个例子。

使用display-align="center"将图像置于块中心。

示例pdf

Sample image

    <fo:block space-before="1.2em">The arrangement of the loaded graphics in fo:block can be adjusted by display-align, text-align. The following example shows the center arrangement by specifying display-align="center", text-align="center".</fo:block>
<fo:block>
   <fo:external-graphic src="./sunflower.jpg" border-style="dotted" border-width="thin" width="9.0cm" height="6.0cm" content-width="5.0cm" content-height="3.5cm" display-align="center" text-align="center" />
  </fo:block>