我们正在使用 Saxon HE/Apache FOP (XSLT 2.0) 将 XML 转换为 PDF。我想调整一些图像的大小以适应页面。我理解使用内容高度和内容宽度“缩小以适应”或“缩放以适应”属性,但图像的高度和宽度在 XML 中不可用。
我需要一种方法来访问 XSLT 中的图像文件尺寸。
以下是如何在XML中描述图形:
<graphic boardno="abcd.jpg" unitmeasure="in" inschlvl="0" delchlvl="0 />
以前他们使用的是xalan扩展(对于v1.0 XSLT,我们正在升级到v.2)
xmlns:ii="xalan://ImageInfo" and xmlns:file="xalan://FileUtils"
然后在XSL-FO中:
<xsl:variable name="curGraphicUri">
<xsl:value-of select="unparsed-entity-uri(@boardno)" />
</xsl:variable>
<xsl:variable name="imgProp">
<xsl:value-of select="ii:setInputFile(string($curGraphicUri),72)" />
</xsl:variable>
<xsl:variable name="curFunctionStatus">
<xsl:value-of select="substring-after(substring-before($imgProp,';'),'status:')" />
</xsl:variable>
所以(我在想)如果我知道FOP中的等效函数,或者其他可用的扩展,我应该能够找出其余的。我搜索了这些论坛,没有找到类似的问题。
EXPath二进制模块的第3.1节给出了一个如何做到这一点的示例:
http://expath.org/spec/binary
撒克逊人(PE 及更高版本)实现了此库。(然而,对于撒克逊HE来说,你不走运)。
使用缩小以适合
(请参阅 https://www.w3.org/TR/xsl11/#content-height),您不需要知道图形的原始大小,因为 XSL-FO 格式化程序无论如何都会知道这一点。如果全尺寸图形适合可用空间,则它将以 100% 的比例渲染,否则图形将缩小,直到它适合可用的高度/宽度。
如果您使用的格式化程序也支持允许的高度刻度
(请参见https://www.w3.org/TR/xsl11/#allowed-高度比例)和允许的宽度比例
,那么您还可以html" target="_blank">控制缩小图像以适应时使用的比例因子。例如,这对于避免莫尔纹(参见https://en.wikipedia.org/wiki/Moiré_pattern)或保持相关图形之间的一致比例(或一组比例)(例如应用程序菜单的屏幕截图的选择)。
如何让ImageView中的图像自动调整大小,使其始终适合父节点? 下面是一个小代码示例:
我有一些问题与CSS为我的网页,显示社会媒体风格的帖子,包括图像。当显示图像时,它们被放置在div标记中,该标记的样式是尝试缩小图像的大小,并将图像horziont地相邻显示。 然而,我有一个问题,图像仍然试图堆叠在一起,我不能让他们调整我想要的大小,特别是在移动。目前基于其他线程,这是我得到的
我正在尝试调整缩略图中的图像大小,以固定框的大小。我试过这个: 这是原始图像的外观:http://files.parsetfss.com/12917a88-ac80-4e5e-a009-fc634161b79c/tfss-6c59b59f-8f57-4610-966e-31bbc203707b-samsung-galaxy-note-4-7290-002.jpg 我也试过: 但是没有任何变化,没有
问题内容: 我正在尝试从目录加载图像并将其作为图标放置在中。但是,当图像尺寸很大时,就不能完全放入标签中。我尝试调整图像的大小以适合标签,但无法正常工作。我可以知道我要去哪里了吗? 问题答案: BufferedImage img = ImageIO.read(…); Image scaled = img.getScaledInstance(500, 500, Image.SCALE_SMOOTH)
我有以下代码。我正在尝试获取pdf页面的实例作为图像,调整图像的大小,然后添加回文档。 我创建浮点变量来查找缩放前后图像的宽度和高度。这就是我面临的问题。当前和新的高度和宽度完全相同。它们不会改变。 有人能帮忙吗?
我正在尝试使图片适合JLabel。我希望将图片尺寸缩小到更适合我的Swing JPanel的尺寸。 我尝试使用setPreferredSize,但它不起作用。 我在想有没有一个简单的方法来做这件事?我应该为此缩放图像吗?