XSL-FO external-graphic not showing

32,262

Solution 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

Solution 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)"/>
Share:
32,262
Kevin Peters
Author by

Kevin Peters

Updated on January 09, 2020

Comments

  • Kevin Peters
    Kevin Peters over 4 years

    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>