当按百分比指定高度时,为什么外部图形无法按比例缩小以适应?

Cit*_*n-T 5 xsl-fo apache-fop

假设我有一个图像“ tall.png”,对于放置它的块来说太高了。我希望图像能够自动缩小以适合父块。

我的意思的简单例子:

<fo:block-container height="10cm" width="10cm" border="solid 0.5px black">
  <fo:block>
    <fo:external-graphic src="tall.png"
       content-width="scale-down-to-fit" content-height="scale-down-to-fit"
       width="100%" height="100%"/>
  </fo:block>    
</fo:block-container>
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎无效。生成的PDF显示图像溢出了块容器。另一方面,如果我这样做...

<fo:block-container height="10cm" width="10cm" border="solid 0.5px black">
  <fo:block>
    <fo:external-graphic src="tall.png"
       content-width="scale-down-to-fit" content-height="scale-down-to-fit"
       width="10cm" height="10cm"/>
  </fo:block>    
</fo:block-container>
Run Code Online (Sandbox Code Playgroud)

这似乎有效。这使我感到惊讶,因为当您使用百分比(http://www.w3schools.com/xslfo/prop_height.asp)时,height属性应该引用包含块的高度。这使我认为示例中使用100%和使用10cm应该完全相同,但是它们不会产生相同的结果。

对于我要解决的实际问题,我无法为外部图形硬编码宽度和高度。我需要它保持在其父块的高度/宽度之内,无论可能是什么。任何想法如何做到这一点?