需要XSL-FO表的圆角?
问题描述:
我转换XML数据转换成PDF文件与XSL-FO模板语言的帮助,希望有一个圆角的头表和数据表的布局如下图所示一样 需要XSL-FO表的圆角?
现在我只得到锐利角落也使用fox:border-radius
属性也不起作用。
我的XSL-FO:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
exclude-result-prefixes="fo">
<xsl:template match="root">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="my-page">
<fo:region-body margin="1in"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="my-page">
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello, <xsl:value-of select="name" />!</fo:block>
<fo:block>
<fo:table width="100%" fox:border-radius="4em" border=".125em solid #000000">
<fo:table-body>
<fo:table-row>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>
No.
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>
Name
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black"
text-align="center" font-weight="bold">
<fo:block>
Phone Number
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
<fo:table width="100%" fox:border-radius="4em" border=".125em solid #000000">
<fo:table-body>
<xsl:for-each select="./friend">
<xsl:for-each select="./closefriends">
<fo:table-row>
<fo:table-cell border="solid 1px black" text-align="center">
<fo:block>
<xsl:value-of select="position()" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black" text-align="center">
<fo:block>
<xsl:value-of select="../name" />
<xsl:value-of select="names" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid 1px black" text-align="center">
<fo:block>
<xsl:value-of select="phNo" />
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
我不知道,我是缺少在这里实现了圆角边框表。
答
有两件事情,你必须为了生产上表圆角与FOP修复:
- 添加
fox
命名空间前缀的声明,势必http://xmlgraphics.apache.org/fop/extensions
(见http://xmlgraphics.apache.org/fop/trunk/extensions.html#fox-namespace)。 - 将
border-collapse
属性的值设置为“单独”(请参阅http://xmlgraphics.apache.org/fop/trunk/extensions.html#rounded-corners)。
+0
令人敬畏的工作如预期... – Maniram
你的样式表中缺少的一件事是声明'fox'命名空间前缀,绑定到'http:// xmlgraphics.apache.org/fop/extensions'。 – mzjn
我也尝试过这个选项,但它不工作... – Maniram
“表格上的圆角不直接支持。要在表级别设置圆角,表格必须将属性border-collapse属性设置为分开”(http ://xmlgraphics.apache.org/fop/trunk/extensions.html#rounded-corners) – mzjn