I already have a URIResolver implemented to resolve the something such as

    <xsl:include href="pagesetup.xsl" />

which is what the Javadoc says it's used for:

http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/javax/xml/transform/URIResolver.html

Unfortunately, the <fo:external-graphic src="file://myapp.jar!/image.svg" 
content-width=8" content-height="8"> does not trigger the call to my URI 
resolver.  I have tried src=url(....) etc with no luck.  So either I've got the 
wrong format of the URL or it cannot be done this way.

I don't see how to use xls:include, xsl:import and document (as per the 
Javadoc) to refer to the graphic file.  In your example, did you refer to 
images using fo:external-graphic or using some other tag?

The other thing I noticed is I set my URIResolver on the TransformerFactory:

SAXTransformerFactory saxTransformerFactory = 
(SAXTransformerFactory)TransformerFactory.newInstance();
saxTransformerFactory.setURIResolver( myURIResolver );

instead of on the foUserAgent which you did...so dunno if that makes a 
difference.


> Date: Wed, 21 Jul 2010 17:16:03 +0200
> Subject: Re: Referring to a image file in a JAR file
> To: fop-users@xmlgraphics.apache.org
> 
> Hi,
> 
> we needed exactly that and implemented our own "ResourceResolver" for that.
> You can register it like the following:
> 
> //Register a custom resolver
> foUserAgent.setURIResolver(new ClasspathResourceResolver());
> 
> //The clas has to implement the URIResolver
> public class ClasspathResourceResolver implements URIResolver {
> 
> //you overwrite the resolve method
> public InputStream resolve(String uri){
> 
> //Resolves the path to a resource in the classpath (since that jar
> should be in the classpath
> this.getClass().getResourceAsStream(uri);
> 
> Regards,
> ToM
                                          
_________________________________________________________________
Need a new place to live? Find it on Domain.com.au
http://clk.atdmt.com/NMN/go/157631292/direct/01/

Reply via email to