我在让外部图形显示在我的 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);
在您的 XSL 模板文件中
<fo:table-cell>
<fo:block>
<fo:external-graphic src="url(resources/naam.png)"></fo:external-graphic>
</fo:block>
</fo:table-cell>
这里 naam.png 将在 resources/ 目录中
我在项目的资源总监中添加了所有图像和所需的字体字体文件。它对我来说很好。谢谢
为绝对路径添加一个<fo:external-graphic>
对我有用的唯一方法是将 url 写为url(file:/C:/myPath/image.jpg)
. 来源。
<fo:external-graphic src="url(file:/C:/myPath/image.jpg)"/>
<fo:external-graphic src="ss/naam.png"/>
这种方式对我有用。
如果您使用的是变量,这可能会有所帮助:
</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>
例如,它在我的 Apache FOP 的 xls-fo 模板中运行。
<fo:external-graphic src='url("src/main/resources/ima/logo.depo.gif")' />