XSL-FO外部图形没有显示

时间:2012-11-07 10:39:00

标签: xml xslt xsl-fo

我在使用外部图形显示在PDF中时遇到了一些问题。我尝试使用url()使用各种路径,但似乎没有任何效果。这是我缺少的其他东西吗?

<fo:table-cell>
    <fo:block>
        <fo:external-graphic src="url(ss/naam.png)"></fo:external-graphic>
    </fo:block>
</fo:table-cell>

4 个答案:

答案 0 :(得分:6)

我正在使用Apache FOP 1.1 Ver。

首先你应该告诉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将位于资源/目录

我在项目的资源总监中添加了所有图像和所需的字体字体文件。 它对我来说很好。 谢谢

答案 1 :(得分:0)

示例,它在我的xsl-fo模板中运行,用于Apache FOP。

<fo:external-graphic src='url("src/main/resources/ima/logo.depo.gif")' />

答案 2 :(得分:0)

<fo:external-graphic src="ss/naam.png"/>

这样对我有用。

答案 3 :(得分:0)

要为绝对路径添加<fo:external-graphic>,它对我有用的唯一方法是将网址写为url(file:/C:/myPath/image.jpg)Source

<fo:external-graphic src="url(file:/C:/myPath/image.jpg)"/>