xsl-fo将半径应用于顶部边框

时间:2013-05-17 09:11:48

标签: xml xsl-fo

美好的一天
我有这个XSL-FO

<fo:table table-layout="fixed" border-width="0.2mm"  border-color="#330099" border-style="groove" 
            border-collapse="separate" background-color="white" line-height="16pt" space-before.optimum="10pt" 
            space-after.optimum="6pt" text-align="left" >       
                <fo:table-column column-width="37mm"/> 
                <fo:table-column column-width="37mm"/> 
                <fo:table-column column-width="37mm"/> 
                <fo:table-column column-width="37mm"/> 
                <fo:table-column column-width="37mm"/> 
                <!-- <fo:table-column column-width="38mm"/> --> 
        <fo:table-body>
            <fo:table-row>
                <fo:table-cell border-width="0.01mm" border-color="#330099"  border-style="groove" background-color="lightgrey">
                    <fo:block text-align="left" color="#000000" font-size="8pt" font-weight="bold">Account Number</fo:block>
                </fo:table-cell>
                <fo:table-cell border-width="0.01mm" border-color="#330099"  border-style="groove" background-color="lightgrey">
                    <fo:block text-align="left" color="#000000" font-size="8pt" font-weight="bold">Customer Id</fo:block>
                </fo:table-cell> 
                <fo:table-cell border-width="0.01mm" border-color="#330099"  border-style="groove" background-color="lightgrey">
                    <fo:block text-align="left" color="#000000" font-size="8pt" font-weight="bold">Account Currency</fo:block>
                </fo:table-cell>
                <fo:table-cell border-width="0.01mm" border-color="#330099"  border-style="groove" background-color="lightgrey">
                    <fo:block text-align="right" color="#000000" font-size="8pt" font-weight="bold">Opening Balance</fo:block>
                </fo:table-cell>
                <fo:table-cell border-width="0.01mm" border-color="#330099"  border-style="groove" background-color="lightgrey">
                    <fo:block text-align="right" color="#000000" font-size="8pt" font-weight="bold">Closing Balance</fo:block>
                </fo:table-cell>
            </fo:table-row>

 </fo:table-body>
 </fo:table>


我的问题是:我想在此表中应用路由边框 是否可以使用border-radius?
或任何其他方法?

3 个答案:

答案 0 :(得分:1)

选项1)最佳:为每个角创建小的SVG图像,然后使用表格内的表格进行格式化...外部表格具有小的左/右列和顶部/底部行,中间有一个大单元格。把你的桌子放在中心的大牢房里。你甚至可以用四个圆角图像和正确的边框应用来做到这一点。如果你需要这个结构来传递一个突破页面的表格,那么角落图像需要在XSL FO中的页眉/页脚中。

选项2)几乎一样好。如果你知道桌子的宽度,只需要在桌子的顶部和底部有一个圆形边缘和它们之间的线条,然后在桌子之间用适当的左/右边框匹配,以便四处走动。您只需在表的开始/停止处添加单个行和单元格(跨越所有列)。

选项3)取决于您的情况......如果表格的高度和宽度相当一致,您可以使用圆角SVG图像作为表格的背景图像或封闭表格的块。您可以缩放它以适应宽度和高度。这种方法可能会扭曲角落的曲线,这就是为什么它只有在你手头知道桌子的尺寸时才能工作(或者至少可以近似它。我也在文件中使用了这种方法,其中高度是可变的但是在数学上已知......也就是说,表可以有5行或10行或者其他但宽度总是一致的... XSL用于“计算”行并为背景选择合适的外部SVG(如表) -bg-row-5.svg ... table-bg-row-10.svg)。

注意在XSL FO中没有扩展名的任何或所有这些都是可行的,并且允许您在表格中创建任何类型的自定义边框,而不仅仅是圆角。

答案 1 :(得分:1)

尝试space-before = 5mm space-after = 5mm

你可以在fo block标签中使用space-after = 5mm。实施例

<fo:block space-after=5mm>Something</fo-block>
<fo:block>SomethingSomething</fo:block>

第一行将在文本&#34; Something&#34;之后创建5 mm的空间。

答案 2 :(得分:1)

尝试<fo:block space-after=5mm space-before=5mm>to get space both front and end/fo-block>