1

我是 Altova Stylevision 和 xsl-fo 的新手。我需要为动态且跨多个页面流动的表格设置弯曲边框。border-radius 属性不起作用,因为 xsl-fo 处理器在表级别、行级别或单元级别都无法识别该属性。我无法给出使用 border-radius 属性时抛出的确切异常,因为我已经使用足迹版。

请在下面找到详细信息:

<fo:root xmlns:altova="http://www.altova.com" 
         xmlns:fo="http://www.w3.org/1999/XSL/Format"
         xmlns:fox="http://xmlgraphics.apache.org/fop/extensions">

我使用了中继中的 fop 扩展,并将上述行包含在 XML 的顶部。

下面是我用来为单元格创建弯曲边框的一段代码。

<fo:table-cell visibility="hidden" padding="0" display-align="center"> 
  <fo:block-container overflow="hidden"> 
   <fo:block text-align="center" fox:border-before-radius-start="7mm" 
             fox:border-start-radius-before="7mm"> 
     <fo:inline font-family="RonBscRg" font-size="7pt">ee</fo:inline> 
   </fo:block> 
  </fo:block-container> 
</fo:table-cell> 

请帮忙。

4

1 回答 1

0

重要提示:要获得圆角,您必须使用FOP 的主干(开发)版本。它不适用于最新发布的版本 (FOP 1.1)。另请参阅http://wiki.apache.org/xmlgraphics-fop/RoundedBorders

FOP 主干可以通过从Subversion 存储库中检出代码并按照此处所述进行编译来获得。

也有夜间快照


问题中FO代码的主要问题是半径属性的名称错误。请参阅http://xmlgraphics.apache.org/fop/trunk/extensions.html#rounded-corners上的规范。另请注意,在当前限制下,它说:

不直接支持桌子上的圆角。要在表格级别设置圆角,表格必须将border-collapse属性设置为separate


目前尚不清楚您希望输出看起来像什么,但是使用以下内容fo:block而不是问题中的内容,您应该会看到明显的差异:

<fo:block text-align="center" border-style="solid"
          fox:border-before-start-radius="7mm"
          fox:border-before-end-radius="7mm"> 
  <fo:inline font-family="RonBscRg" font-size="7pt">ee</fo:inline> 
</fo:block> 

如果您希望所有四个角都变圆,只需使用简写fox:border-radius

于 2014-08-22T08:05:46.827 回答