缩小以适应 FOP 中的图像

Posted

技术标签:

【中文标题】缩小以适应 FOP 中的图像【英文标题】:Scale down to fit an image in FOP 【发布时间】:2011-09-07 09:33:39 【问题描述】:

我正在使用 FOP 1.0 版来创建 PDF。在其中一个页面中,我想显示一个图像(2552 x 4200 像素),如果它不完全适合页面,则将其缩小。据我在mailing list 上看到的,推荐的方法如下:

<fo:external-graphic inline-progression-dimension.maximum="100%" 
                     content- 
                     content- 
                     src="..."/>

不幸的是,这仍然不能显示整个图像。图像的下部被切断。谁能给我提示一下我可能做错了什么?

【问题讨论】:

图片的格式是什么? 在这种情况下,它是一个 TIFF 图像。 我使用 fo:external-graphic 在一个小的 FO 文件中包含了一个 TIFF 图像,就像你做的那样,输出很好。我无法重现该问题。您能否提供更多信息(可能是相关图片的链接)? 很遗憾,图片属于机密,所以我无法为您提供图片。 我可以通过定义“视口”的确切高度和宽度来完成这项工作:&lt;fo:external-graphic height="29.7cm" width="21cm" content-height="scale-down-to-fit" content-width="scale-down-to-fit" src="..."/&gt;。谁能向我解释为什么我显然必须在我的情况下定义它? 【参考方案1】:

定义“视口”的确切高度和宽度: .

如果您不指定视口,那么 FOP 将不知道要将图像缩放到什么。

它可以猜测,但不能准确地知道。

【讨论】:

不幸的是,我无法再访问该项目了。我很想试试这个。【参考方案2】:

I found this page here explaining how scaling works with XSL-FO.

基本上,这是我用来让它工作的 sn-p:

<fo:external-graphic
    src="url('...')"
    
    content-
    content-
    scaling="uniform"
    xsl:use-attribute-sets="img"/>

我发现width="100%" 是您自己尝试中缺少的部分。希望这对未来的访客有所帮助。

【讨论】:

width="100%" content-width="scale-to-fit" 似乎够用了。

以上是关于缩小以适应 FOP 中的图像的主要内容,如果未能解决你的问题,请参考以下文章

缩小以适应 div 和段落,基于图像?

如何使 HTML 表格中的一列缩小以适应?

将图像加载到画布上并放大/缩小并移动它以适应并保存画布上的内容

jquery animate 使用方形矩形图像创建缩小效果以适应窗口宽度或高度并保持纵横比

XSL:FO / Apache FOP 中的内联图像数据

缩小以适应 flexbox 或 flex-basis: content 解决方法中的内容?