xsl-fo标题 - 图像左,三行文本右,顶部对齐

时间:2010-06-14 19:24:33

标签: static xsl-fo

使用apache FOP,想要创建一个标题左对齐的标题,三行地址右对齐,两者对齐顶部。

如果在流程内部完成了以下工作,但是在静态内容标题('xsl-region-before')中,它会得到左边的&正确但正确对齐地址块下面的徽标,就像完全忽略了表格定义一样。

我尝试了其他选项,例如尝试内联两者,或使用浮点数,结果相似。标题只是将它们视为单独的块并将它们堆叠起来。有人有什么建议吗?

我发现另一个问题是关于页脚的问题,唉没有回复: Need instream-foreign-object and text to both align to the bottom in XSL-FO

相关摘录如下:

    <fo:layout-master-set>
        <fo:simple-page-master page-height="8.5in" page-width="11in" master-name="only" margin=".5in .5in .5in .5in">
            <fo:region-body region-name="xsl-region-body" margin-top="1in" margin-bottom=".5in"/>
            <fo:region-before region-name="xsl-region-before"/>
            <fo:region-after region-name="xsl-region-after"/>
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="only">
        <fo:static-content flow-name="xsl-region-before">
                <fo:block font-size="7pt">
                    <fo:table width="10in">
                        <fo:table-column/>
                        <fo:table-column/>
                        <fo:table-body>
                            <fo:table-row>
                                <fo:table-cell>
                                    <fo:block>
                                        <fo:external-graphic src="img/print_logo.png" content-width="2in"/>
                                    </fo:block>
                                </fo:table-cell>
                                <fo:table-cell display-align="center">
                                    <fo:block text-align="right">
                                        123 Credibility Street
                                    </fo:block>
                                    <fo:block text-align="right">
                                        Chicago, IL  60606
                                    </fo:block>
                                    <fo:block text-align="right">
                                        312-123-4567
                                    </fo:block>
                                </fo:table-cell>
                            </fo:table-row>
                        </fo:table-body>
                    </fo:table>
                </fo:block>
        </fo:static-content>

2 个答案:

答案 0 :(得分:4)

我设法通过将两个元素放在两个具有绝对定位的独立块容器中来实现所需的效果:

<fo:static-content flow-name="xsl-region-before">
    <fo:block-container position="absolute">
        <fo:block>
            <fo:external-graphic src="img/print_logo.png" content-width="2in"/>
        </fo:block>
    </fo:block-container>
    <fo:block-container position="absolute">
        <fo:block text-align="right">
            123 Credibility Street
        </fo:block>
        <fo:block text-align="right">
            Chicago, IL  60606
        </fo:block>
        <fo:block text-align="right">
            312-123-4567
        </fo:block>
    </fo:block-container>
</fo:static-content>

答案 1 :(得分:1)

回复已经很晚了,但必须回答查询。所以就是这样:

是的,这里需要绝对定位,但更重要的是你放置的块容器序列。

最后一个容器的内容将位于其他容器之上。