【问题标题】:Image not displaying completely图像未完全显示
【发布时间】:2014-03-20 10:49:29
【问题描述】:

我需要在我的 pdf 文件中显示一个 svg 图像。下面是我的 xslt 代码:

<fo:block text-align="left"
          display-align="left"
          absolute-position="absolute"
          left="-1.5cm"
          top="-1cm">
  <fo:external-graphic content-width="scale-to-fit"
                         width="100%"
                         content-height="50%"
                         scaling="uniform">
    <xsl:attribute name="src">
         <xsl:value-of select="$src" />
    </xsl:attribute>
  </fo:external-graphic>
</fo:block>

说明: 我的 xml 有很多图像。上面的代码循环运行,一张一张的显示图片。但是对于一些高度超过页面高度的图像,图像会被剪切。所以我试着给高度= 50%。但是这样我的图像宽度也在减少。

基本上我想要的是图像应该适合块。不应该剪切更大的图像。它们应该适合给定的块。请帮忙。

【问题讨论】:

  • 您正在使用哪些 XSLT 和 FO 处理器?另外,请包含更大的代码示例(如果不是整个样式表),以便人们可以实际测试。
  • 嗨,Mathias,XSLT 1.0 和 FO 1.0。但是我不能把整个样式表放在这里,因为它太大了,其他的东西与我的问题无关。我正在生成的 pdf 文件有这个数字。但是如果我降低高度,宽度也会减小。我也试过把高度也给 100%。在这种情况下,较大的图像会重叠在 pdf 文件的页脚上并被剪切。

标签: xml xslt xslt-1.0 xsl-fo apache-fop


【解决方案1】:

但是如果我减小高度,宽度也会减小。

这大概是因为您在图形上指定了scaling="uniform"。这将始终“保持纵横比”(参见规范 here 的相关部分)。

<fo:external-graphic content-width="scale-to-fit"
                     width="100%"
                     content-height="50%"
                     scaling="non-uniform">
   <!--...-->
</fo:external-graphic>

【讨论】:

  • 嘿..谢谢。那行得通。我应该考虑一下这个。:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-28
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多