获取以正常大小显示的图像



我是XSL-FO新手。当我使用OxygenXML将我的简单脚本呈现为pdf时/XMLmind它会自动将我的图像大小调整为正确的大小。我已经获取了OxygenXML的fo输出/XMLmind并试图准确地复制它,但我的pdf中的图像仍然比应该的要大

我做错了什么。附言:我正在使用Apache Fop 2.6来处理我的.fo文件。

<?xml version="1.0" encoding="utf-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master page-width="8.5in" page-height="11in" master-name="BodyPage">
<fo:region-body margin-top=".5in" margin-right=".5in" margin-bottom=".5in" margin-left=".5in"/>
<fo:region-before region-name="header" extent=".5in" display-align="after"/>
<fo:region-after region-name="footer" extent=".5in" display-align="before"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="BodyPage">
<fo:flow flow-name="xsl-region-body">
<fo:block space-before="1pc">
<fo:external-graphic src="url(images/image11.png)" content-width="316px" content-height="292px" width="auto" scaling="uniform"/>
<!-- <fo:external-graphic src="url(images/image11.png)" overflow="hidden" content-width="316px" content-height="292px" width="auto" scaling="uniform"/> -->
</fo:block>

<fo:block space-before="1pc">
<fo:external-graphic src="url(images/image11.png)" content-width="316px" content-height="292px" width="auto" height="auto"/>
</fo:block>

<fo:block space-before="1pc">
<fo:external-graphic src="url(images/image11.png)" content-width="scale-to-fit" content-height="100%" width="100%" height="auto" />
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>

您的PNG图像记录的分辨率可能为每英寸72点。FOP也可能使用1px作为1/72英寸或1/96英寸。看见https://www.w3.org/TR/xsl11/#pixels

content-width="100%"表示以其固有宽度渲染图像,该图像看起来将是316像素,例如,每英寸72像素或大约4.39英寸。(请参见https://www.w3.org/TR/xsl11/#content-宽度(

你可以:

  • 在图像编辑器中编辑图形以更改其分辨率
  • 编辑图形以将其调整为不同数量的像素
  • fo:external-graphic上指定固定的scale
  • 也许可以更改FOP对像素的定义。AH格式化程序对此有设置(https://www.antenna.co.jp/AHF/help/en/ahf-optset.html#pxpi),所以FOP

最新更新