我试图使用XSL-FO围绕2个垂直灰条进行环绕和成像。我创建了一个180 * 1维的垂直分隔符,并且我能够在我的XSL中正确渲染它。
问题是,<fo:block>
元素占用太多高度,我似乎无法找到解决方法,请参见下图(红色是<fo:block>
元素的背景,而细灰色line是我的分隔符。我通过将整个<fo-block>
包装到<fo:block-container>
中来获得了良好的结果,但是分隔符不是居中的,我无法将其置于中心位置。
这是我的代码
<fo:block height='1px' background-color='#DE122D'>
<fo:external-graphic height='1px' content-width="scale-down-to-fit" src="url('images/verticalSeparator.png')" />
</fo:block>
我放了一个背景色,以便能够看到它的高度。
最终,我试图获得第二个屏幕截图,可能还有其他方法可以做到这一点(也许是有边框的东西?),我愿意尝试它们。只需注意2个垂直条比图像长,并且内容必须居中!
答案 0 :(得分:0)
我可能不理解您的问题,但根据发布的代码暗示规则是问题并且占用太多空间。如果规则是您的问题,可能您希望使用替代结构而不是图像。为此,您可以使用领导者并将长度设置为您想要的长度,并且不会出现任何问题。以下代码:
<fo:block text-align="center">Text Before</fo:block>
<fo:block text-align="center" font-size="1px" line-height="0"><fo:leader color="silver" leader-length="2in" leader-pattern="rule"/></fo:block>
<fo:block text-align="center">Text Between</fo:block>
<fo:block text-align="center" font-size="1px" line-height="0"><fo:leader color="silver" leader-length="2in" leader-pattern="rule"/></fo:block>
<fo:block text-align="center">Text After</fo:block>
生成此输出 - 您可以看到间距没有问题: