font-base is ignored in 2.1

Adam Retter <[email protected]>
Newsgroups gmane.text.xml.fop.user
Message-ID <CAPK0icjqv5GW0aseL73dpjna+F2w7Xu_c7uVMfFkfEGwJ=SbkQ@mail.gmail.com>
It seems that fonts are not being resolved relative to the font-base
config parameter in 2.1, instead they are being resolved directly by
the ResourceResolver. This looks like a bug to me, can anyone confirm?

I have a FOP configuration file like this:

<fop version="1.0">
    <!-- Strict user configuration -->
    <strict-configuration>true</strict-configuration>

    <!-- Strict FO validation -->
    <strict-validation>false</strict-validation>

    <!-- Base URL for resolving relative URLs -->
    <base>./</base>

    <!-- Font Base URL for resolving relative font URLs -->
    <font-base>http://localhost:8080/exist/apps/tei-simple/resources/fonts/</font-base>
    <renderers>
        <renderer mime="application/pdf">
            <fonts>
                <font kerning="yes"
                    embed-url="Junicode.ttf"
                    encoding-mode="single-byte">
                    <font-triplet name="Junicode" style="normal"
weight="normal"/>
                </font>
                <font kerning="yes"
                    embed-url="Junicode-Bold.ttf"
                    encoding-mode="single-byte">
                    <font-triplet name="Junicode" style="normal" weight="700"/>
                </font>
                <font kerning="yes"
                    embed-url="Junicode-Italic.ttf"
                    encoding-mode="single-byte">
                    <font-triplet name="Junicode" style="italic"
weight="normal"/>
                </font>
                <font kerning="yes"
                    embed-url="Junicode-BoldItalic.ttf"
                    encoding-mode="single-byte">
                    <font-triplet name="Junicode" style="italic" weight="700"/>
                </font>
            </fonts>
        </renderer>
    </renderers>
</fop>


And I instantiate FOP like so:

ResourceResolver resolver =
ResourceResolverFactory.createSchemeAwareResourceResolverBuilder(ResourceResolverFactory.createDefaultResourceResolver()).build();
EnvironmentProfile environment =
EnvironmentalProfileFactory.createDefault(new URI("file:///db"),
resolver);
final FopFactoryBuilder = builder = new
FopFactoryBuilder(environment).setConfiguration(configFile);
final FopFactory fopFactory = builder.build();

When I run my FO transformation I then get an error like:

Caused by: java.io.FileNotFoundException: /Junicode.ttf (No such file
or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at java.net.URL.openStream(URL.java:1045)
at org.apache.fop.apps.io.ResourceResolverFactory$NormalResourceResolver.getResource(ResourceResolverFactory.java:224)
at org.apache.fop.apps.io.ResourceResolverFactory$TempAwareResourceResolver.getResource(ResourceResolverFactory.java:152)
at org.apache.fop.apps.io.ResourceResolverFactory$DefaultResourceResolver.getResource(ResourceResolverFactory.java:121)
at org.apache.fop.apps.io.ResourceResolverFactory$SchemeAwareResourceResolver.getResource(ResourceResolverFactory.java:256)
at org.apache.fop.apps.io.InternalResourceResolver.getResource(InternalResourceResolver.java:92)
at org.apache.fop.fonts.truetype.OFFontLoader.read(OFFontLoader.java:103)
at org.apache.fop.fonts.truetype.OFFontLoader.read(OFFontLoader.java:93)
at org.apache.fop.fonts.FontLoader.getFont(FontLoader.java:124)
at org.apache.fop.fonts.FontLoader.loadFont(FontLoader.java:108)
at org.apache.fop.fonts.LazyFont.load(LazyFont.java:116)


When I look through the FOP 2.1 code-base I see that the `font-base`
only seems to be read in FontManagerConfigurator#configure, however
that code-path is never executed when I run my app.

Any thoughts?

-- 
Adam Retter

skype: adam.retter
tweet: adamretter
http://www.adamretter.org.uk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.