我的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>
我希望图像的顶部与块容器的顶部对齐。但这是我得到的结果:
我的图像(蓝色/灰色矩形)从块容器顶部下方约0.5 mm处开始(黑色线条与蓝色/灰色矩形之间的距离)。
我尝试过的事情:
margin="0mm" padding="0mm" space-before="0mm"
以确保块容器,块和外部图形不会继承祖先的任何边距,填充等。这并没有改变结果。通常,这0.5毫米的间隙并不重要。在这种情况下,我试图对齐两个块容器及其内容,不同之处在于难以让它们准确排列。
如何消除外部图形之上的这种差距?
(我使用的是Antenna House XSL Formatter 6.1)
答案 0 :(得分:1)
我认为差距有两个罪魁祸首:
fo:block-container
,fo:block
和fo:external-graphic
),这会侵蚀可用的高度删除边框并将块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>