外部图形上面有空格,即使我已将其设置为零

时间:2017-09-20 11:44:07

标签: xml xsl-fo

我的XSL-FO模板在每个页面的页脚中都有一个图像:

<fo:block-container left="0mm" top="10mm" absolute-position="absolute" width="210mm" height="10mm" border="0.1pt black solid" margin="0mm" padding="0mm" space-before="0mm">
    <fo:block border="0.1pt green solid" margin="0mm" padding="0mm" space-before="0mm">
        <fo:external-graphic src="grayblock.pdf"  height="10mm" content-height="scale-to-fit" border="0.1pt blue solid" margin="0mm" padding="0mm" space-before="0mm"/>
    </fo:block>
</fo:block-container>

我希望图像的顶部与块容器的顶部对齐。但这是我得到的结果:

enter image description here

我的图像(蓝色/灰色矩形)从块容器顶部下方约0.5 mm处开始(黑色线条与蓝色/灰色矩形之间的距离)。

我尝试过的事情:

  • 我插入margin="0mm" padding="0mm" space-before="0mm"以确保块容器,块和外部图形不会继承祖先的任何边距,填充等。这并没有改变结果。
  • 添加负边距/填充不会移动外部图形。
  • 将边框设置为&#34;无&#34;没有解决问题。我已经添加了边框来可视化导致问题的元素。

通常,这0.5毫米的间隙并不重要。在这种情况下,我试图对齐两个块容器及其内容,不同之处在于难以让它们准确排列。

如何消除外部图形之上的这种差距?

(我使用的是Antenna House XSL Formatter 6.1)

1 个答案:

答案 0 :(得分:1)

我认为差距有两个罪魁祸首:

  • 三个边框fo:block-containerfo:blockfo:external-graphic),这会侵蚀可用的高度
  • half-leading trait

删除边框并将块line-height设置为10毫米应该避免间隙(我使用FOP 2.2测试):

<fo:block-container left="0mm" top="30mm" absolute-position="absolute" width="210mm" height="10mm" margin="0mm" padding="0mm" space-before="0mm" background-color="#AAFFFF">
    <fo:block line-height="10mm" line-stacking-strategy="font-height" margin="0mm" padding="0mm" space-before="0mm" background-color="#FFFFAA">
        <fo:external-graphic vertical-align="top" src="grayblock.pdf" height="10mm" content-height="scale-to-fit" margin="0mm" padding="0mm" space-before="0mm"/>
    </fo:block>
</fo:block-container>