java - Load a font from JAR for FOP -


i have ttf font in fonts directory in jar application.

 myapp.jar /      fop /         config.xml         font.ttf 

i create fop way:

    fopfactory fopfactory = fopfactory.newinstance();     fopfactory.setstrictvalidation(false);     fopfactory.setuserconfig(getclasspathfile("/fop/config.xml"));     fouseragent fouseragent = fopfactory.newfouseragent();    ... 

how configure config.xml embeddd font.ttf in pdf file rendering?

it seems post late, may it'll useful others. [java 8, fop 2.1]

import lombok.sneakythrows; ...         @sneakythrows             private fopfactory getfopfactory(){                 inputstream fopconfigstream = thread.currentthread().getcontextclassloader().getresourceasstream("/fop/config.xml");                 fopfactorybuilder builder = new fopfactorybuilder(new file(".").touri(), new custompathresolver());                 fopfactory factory = builder.setconfiguration(new defaultconfigurationbuilder().build(fopconfigstream)).build();                 fopconfigstream.close();                 return factory;             }     ...         private static final class custompathresolver implements resourceresolver {             @override             public outputstream getoutputstream(uri uri) throws ioexception {                 return thread.currentthread().getcontextclassloader().getresource(uri.tostring()).openconnection()                         .getoutputstream();             }              @override             public resource getresource(uri uri) throws ioexception {                 inputstream inputstream = classloader.getsystemresourceasstream("fop/" + filenameutils.getname(uri));                 return new resource(inputstream);             }         } 

config.xml:

<fop version="1.0">     <renderers>         <renderer mime="application/pdf">             <fonts>               <font kerning="yes" embed-url="font.ttf" embedding-mode="subset">                 <font-triplet name="font name" style="normal" weight="normal"/>               </font>             </fonts>         </renderer>     </renderers> </fop> 

Comments