Hi Szeak,
Thanks for the pointers. Let me clarify: I knew how to register
individual fonts in a config file and refer to them in an XSL-FO file,
but it wasn't clear how to refer to bulk-registered fonts. Some further
digging has made me find the answer, so if it can help others, I'll try
to clarify with a concrete example.
Suppose I register an additional font in a configuration file:
<renderers>
<renderer mime="application/pdf">
<fonts>
<font embed-url="fonts/noto/NotoSansCJKjp-Regular.otf">
<font-triplet name="NotoSansCJKjp" style="normal" weight="normal"/>
</font>
</fonts>
</renderer>
</renderers>
When using this configuration file, I can refer to this font in an
XSL-FO file as follows:
<fo:block font-family="Helvetica,NotoSansCJKjp">
a test character: あ
</fo:block>
...thus making FOP select the Helvetica font for all glyphs it supports
(the string "a test character: "), and fall back to the NotoSansCKjp
font for displaying the "あ" character.
So far, so good. Now, suppose that instead of this single font, I'd want
to register all Noto fonts in that folder in bulk. According to the
documentation, this can be done with the <directory> instruction in the
configuration file:
<renderers>
<renderer mime="application/pdf">
<directory recursive="true">F:\fop\noto</directory>
</renderer>
</renderers>
[NOTE: despite correct <base> and <font-base> settings, <directory>
doesn't seem to work with relative paths...]
Perhaps I have overlooked, but from the documentation it wasn't clear to
me how these fonts should be referred to in an XSL-FO file.
Yet, it appears that the full font name should be used for the
"font-family" attribute. So, if the XSL-FO snippet above is adjusted to:
<fo:block font-family="Helvetica,Noto Sans CJK JP">
a test character: あ
</fo:block>
...it works!
Best,
Ron
Op 13/09/2017 om 11:53 schreef Szeak (Register Man):
Hi,
First of all, you may need to read:
- "Missing Glyphs" section in
https://xmlgraphics.apache.org/fop/2.1/fonts.html
- font-base configuration element in
https://xmlgraphics.apache.org/fop/2.1/configuration.html
- https://xmlgraphics.apache.org/fop/2.1/fonts.html#font_substitution
- https://xmlgraphics.apache.org/fop/2.1/fonts.html#selection
I'm not sure, it can FOP configuring for auto font switching by
characters (glyphs), because of as a Missing Glyphs section also wrote:
"A better way is to use a font that has all the necessary glyphs. This
glyph substitution is only a last resort."
AND:
"There are two font selection strategies: character-by-character or
auto. The default is auto.
...
Character-by-Character is NOT yet supported!"
Best regards, Szeak