XSL-FO external-graphic not showing

2019-02-26 03:58发布

问题:

I'm having some issues getting the external-graphic to show in my PDF. I've tried using all sorts of paths using the url() but nothing seems to work. Is it something else I'm missing?

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

回答1:

I am using Apache FOP 1.1 Ver.

first you should tell apache FOP that where is base path in follwing way. You should copy code as it is.

    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);

In your XSL template file

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

Here naam.png will be in resources/ directory

I added all images and required font font files in resource director of my project. It is working fine for me. Thank you



回答2:

To add a <fo:external-graphic> for an absolute path the only way it worked for me is to write the url as url(file:/C:/myPath/image.jpg). Source.

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


回答3:

Example, it runs in my xls-fo template for Apache FOP.

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


回答4:

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

Works for me this way.



标签: xml xslt xsl-fo