我在将外部图片显示在PDF文件中遇到了一些问题。尝试使用url()
方法的所有路径都无法生效。是否还有其他需要注意的地方?
<fo:table-cell>
<fo:block>
<fo:external-graphic src="url(ss/naam.png)"></fo:external-graphic>
</fo:block>
</fo:table-cell>
我正在使用 Apache FOP 1.1版本。
首先,您需要按照以下方式告诉 Apache FOP 基本路径在哪里。请按原样复制代码。
fopFactory = FopFactory.newInstance();
// for image base URL : images from Resource path of project
String serverPath = request.getSession().getServletContext().getRealPath("/");
fopFactory.setBaseURL(serverPath);
// for fonts base URL : .ttf from Resource path of project
fopFactory.getFontManager().setFontBaseURL(serverPath);
<fo:table-cell>
<fo:block>
<fo:external-graphic src="url(resources/naam.png)"></fo:external-graphic>
</fo:block>
</fo:table-cell>
这里的naam.png将位于资源目录中
我在项目的资源目录中添加了所有图像和所需字体文件。 它对我来说运行良好。 谢谢
<fo:external-graphic>
,我发现唯一可行的方法是将URL写成url(file:/C:/myPath/image.jpg)
。参考来源。<fo:external-graphic src="url(file:/C:/myPath/image.jpg)"/>
</fo:table-cell>
<fo:table-cell number-columns-spanned="5"
border="0.1pt solid gray"
padding="5pt">
<fo:block>
<fo:external-graphic
display-align="center"
content-width="338px"
content-height="290px"
src="url(file:/{$screenshot-path})">
</fo:external-graphic>
</fo:block>
</fo:table-cell>
uri-specification
必须像url(...)
这样,其中内容可以选择性地放在引号中,但至少在Apache FOP中,这种方式不起作用。在Apache FOP中有效的是相对于FO文件的简单路径。<external-graphic src="../res/pic-1.png" />
<fo:external-graphic src="ss/naam.png"/>
这种方式对我有效。
例如,它在我的 Apache FOP xls-fo 模板中运行。
<fo:external-graphic src='url("src/main/resources/ima/logo.depo.gif")' />
src="url('ss/naam.png')"
. - mzjn