altova s​​tylevision或xsl-fo中动态自由流动表的弯曲边框,不使用border-radius属性

时间:2014-08-18 12:05:52

标签: xsl-fo apache-fop altova

我是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">

我使用了trunk中的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> 

请帮忙。

1 个答案:

答案 0 :(得分:0)

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

可以通过查看Subversion repository中的代码并按照here所述进行编译来获取FOP主干。

还有nightly snapshots


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

  

不直接支持表格上的圆角。要在表级设置圆角,表必须将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