fo:instream-foreign-object不能正确显示图像

时间:2016-06-06 09:56:14

标签: xsl-fo apache-fop

我使用以下代码以PDF格式显示PNG图像。我使用<fo:instream-foreign-object>因为<fo:external-graphic>无法满足我显示图片的要求。请参阅问题external graphic

<fo:instream-foreign-object width="50%" content-width="scale-to-fit">
   <svg> 
       <image height="439px" width="1037px" xlink:href="test.png"/>
   </svg>
</fo:instream-foreign-object>

通过上述使用,我无法获得文档中的图片。图像未正确放置在页面中,下一段中的文本将叠加在页面顶部。 请建议如何实现它。

1 个答案:

答案 0 :(得分:0)

根据您显示的内容,AH Formatter将使用包含图像的fo:block的整个页面,并将下一段放在下一页。

widthheightviewbox属性添加到svg元素可让AH Formatter至少正确调整图像大小:

<fo:instream-foreign-object width="50%" content-width="scale-to-fit">
    <svg xmlns="http://www.w3.org/2000/svg" width="1037" height="439"
        viewBox="0 0 1037 439">
        <image height="439px" width="1037px" xlink:href="test.png"
            xmlns:xlink="http://www.w3.org/1999/xlink" />
    </svg>
</fo:instream-foreign-object>

让FOP使用正确的图像高度就足够了。