获取以正常大小显示的图像
Get images to show at their normal size
我是 XSL-FO 新手。当我使用 OxygenXML/ 将我的简单脚本渲染为 pdf 时
XMLmind 它会自动将我的图像调整到正确的大小。我已经从 OxygenXML/ 获取了 fo 输出
XMLmind 并尝试完全复制它,但我的 pdf 中的图像仍然比应有的大。
我做错了什么。
PS:我正在使用 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-width)
你可以:
- 在图像编辑器中编辑图形以更改其分辨率
- 编辑图形以将其调整为不同的像素数
- 在
fo:external-graphic
上指定一个固定的 scale
- 也许改变 FOP 对像素的定义。 AH Formatter 对此有一个设置(https://www.antenna.co.jp/AHF/help/en/ahf-optset.html#pxpi),所以 FOP 也可以
我是 XSL-FO 新手。当我使用 OxygenXML/ 将我的简单脚本渲染为 pdf 时 XMLmind 它会自动将我的图像调整到正确的大小。我已经从 OxygenXML/ 获取了 fo 输出 XMLmind 并尝试完全复制它,但我的 pdf 中的图像仍然比应有的大。
我做错了什么。 PS:我正在使用 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-width)
你可以:
- 在图像编辑器中编辑图形以更改其分辨率
- 编辑图形以将其调整为不同的像素数
- 在
fo:external-graphic
上指定一个固定的 - 也许改变 FOP 对像素的定义。 AH Formatter 对此有一个设置(https://www.antenna.co.jp/AHF/help/en/ahf-optset.html#pxpi),所以 FOP 也可以
scale