在xsl-fo文档中仅定义一次边框

时间:2014-03-06 13:47:29

标签: java apache pdf xsl-fo apache-fop

我在xsl-fo模板中为表格的边框使用了一种样式。有没有办法将以下内容定义为样式变量,并使用“变量”我想要应用此样式?

例如:

 padding-top="0pt" 
 padding-left="3.5pt" 
 padding-bottom="0pt" 
 padding-right="3.5pt" 
 border-top-style="solid" 
 border-top-color="black" 
 border-top-width="0.5pt" 
 border-left-style="solid" 
 border-left-color="black" 
 border-left-width="0.5pt" 
 border-bottom-style="solid" 
 border-bottom-color="black" 
 border-bottom-width="0.5pt" 
 border-right-style="solid" 
 border-right-color="black" 
 border-right-width="0.5pt" 
 display-align="center"

我希望我可以使用像

这样的东西
 <fo:table-row ${border-style-1}>
 .....
    <fo:table-cell ${border-style-2}

${var}我希望将var替换为整个样式文字。

1 个答案:

答案 0 :(得分:2)

您可以定义然后使用属性集,您可以在任何地方使用它们。

你使用这样的东西:

<xsl:attribute-set name="row-style">
  <xsl:attribute name="padding-top">0pt</xsl:attribute>
  <xsl:attribute name="padding-left">3.5pt</xsl:attribute>
  <!-- rest of your attributes you wish here -->
</xsl:attribute-set>

然后在实际对象上:

 <fo:table-row xsl:use-attribute-sets="row-style">

另请注意,如果您希望重复使用可重复的块,则属性集的一个定义可以以相同的方式使用另一个,例如:

 <xsl:attribute-set name="row-style" xsl:use-attribute-sets="inherit-me">