xmlgraphics-fop-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Retter <adam.ret...@googlemail.com>
Subject font-base is ignored in 2.1
Date Fri, 11 Mar 2016 22:39:03 GMT
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

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org


Mime
View raw message