使用文本作为背景

时间:2017-01-30 13:00:44

标签: xml xslt xsl-fo

我正在使用此代码将图像背景添加到我的文件中:

<fo:block-container absolute-position="absolute"
                        top="-1cm" left="-3cm" width="26cm" height="29.7cm"
                        background-image="Pictures/afbeelding.png">
                        <fo:block/>
</fo:block-container>

此代码工作正常。我现在想尝试新的。

是否也可以添加字符串作为背景? 我还可以确定字符串的位置吗? 我希望这个字符串从左上角到右下角对角放置。

我已经找到了一个解决方案,但是找不到。

1 个答案:

答案 0 :(得分:0)

是的,您可以将文字用作背景。要确保背景文本呈现为背景,而不是正文文本:

  • 将文字放在其中一个static-content框架
  • 使用block-containerabsolute-position将容器放在正文框架下

&#13;
&#13;
<fo:static-content flow-name="inside">
   <fo:block-container width="170mm" absolute-position="absolute" top="100mm" left="20mm">
        <fo:block text-align="center" font-size="45pt" font-weight="bold"  axf:transform="rotate(-45deg)">
    	  <xsl:text>Watermark text</xsl:text>
        </fo:block>
   </fo:block-container>
</fo:static-content>
&#13;
&#13;
&#13;

  • 在您的fo:simple-page-master中,区域的顺序决定了哪些内容在顶部呈现。区域按顺序处理,后面的区域将在之前的区域之上绘制。将region-body放在列表中的最后一位,它将被绘制在所有其他列表之上:

&#13;
&#13;
    <fo:simple-page-master master-name="odd">			
    	<fo:region-before/>
    	<fo:region-after/>
    	<fo:region-start/>
    	<fo:region-end/>
    	<fo:region-body/>
    </fo:simple-page-master>
&#13;
&#13;
&#13;

如果使用Antennahouse,可以将fo:block旋转到对角线方向:axf:transform="rotate(-45deg)"

与将文本放在SVG元素中相比,使用此方法的优点是:在SVG中,文本不能跨越多行。每行必须成为单独的SVG元素,您必须手动拆分文本。使用我的方法,文本最终在一个fo:块中,它支持换行符,连字符等。