You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Adrian Cumiskey <ad...@gmail.com> on 2007/07/17 01:27:04 UTC

FontSources

Hi all,

In the process of looking at this bug 
(http://issues.apache.org/bugzilla/show_bug.cgi?id=42861) I came to the 
conclusion that I´m not really happy with the current font handling 
implementation.  There is quite a bit of duplicated effort between the 
renderers with regards to font configuration.

I would very much like to see a shared ¨FontSource¨ implementation (e.g. 
both the Postscript and PDF renderers could make use of a shared 
Base14FontSource and CustomFontSource) instead of having their own 
separate configurations.  Any new implementation would of course 
(initially at least) remain backwards compatible with existing FOP font 
configurations.  I believe these ideas were spoken about a while ago and 
I do not think it would be too much work and it should simplify font 
configuration somewhat and should be more efficient in embedded 
implementations that make use of more than one renderer.  Its probably a 
bit late in the day to make the 0.94 release, but in the longer term 
does anybody have any initial thoughts on this proposal?

Adrian.

Re: FontSources

Posted by Jeremias Maerki <de...@jeremias-maerki.ch>.
On 17.07.2007 11:36:42 Vincent Hennebert wrote:
> Hi Adrian,
> 
> I'm not really a specialist of the font handling stuff in FOP, but
> having worked a bit in this area I can drop a few ideas (and ask a few
> naive questions), in the hope they will be useful.
> 
> 
> > In the process of looking at this bug
> > (http://issues.apache.org/bugzilla/show_bug.cgi?id=42861) I came to the
> > conclusion that I´m not really happy with the current font handling
> > implementation.  There is quite a bit of duplicated effort between the
> > renderers with regards to font configuration.
> 
> Can you give some examples? Not that I don't believe you, just to have
> some concrete things to discuss about. For example, IIRC, in PDFFactory
> there is some code to read the font stream for embedding it. I guess
> there is about the same code in the PS renderer for embedding TrueType
> fonts. That job should really be deferred to the font library which
> would directly provide the stream to those renderers that need it. Is
> that what you're thinking of?
> 
> 
> > I would very much like to see a shared ¨FontSource¨ implementation (e.g.
> > both the Postscript and PDF renderers could make use of a shared
> > Base14FontSource and CustomFontSource) instead of having their own
> > separate configurations.  Any new implementation would of course
> 
> What would a FontSource exactly correspond to? What would be the
> different kinds of FontSources?

Links to my posts on this matter back in 2003:
http://wiki.apache.org/xmlgraphics-fop/FOPFontSubsystemDesign
http://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-dev/200311.mbox/%3c20031122154035.B631.DEV.JEREMIAS@greenmail.ch%3e
http://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-dev/200311.mbox/%3c20031127174011.0D7B.DEV.JEREMIAS@greenmail.ch%3e

(the third link contains a list of those FontSources but it's incomplete
now that we have AFP, too.)

> Would a Base14FontSource really make
> sense? I mean, base14 fonts are PDF- (and, to a certain extent, PS-)
> specific. Does a PDF renderer really need to know that it's manipulating
> a base14 font? Isn't it just enough to know whether the font should be
> embedded or not?

No, in the case of PDF, for example, there's a difference in handling
between the base 14 fonts and a normal Type 1 font (see
PDFFactory.makeFont()). Base 14 fonts don't have a font descriptor. In
PostScript, it's the same although you don't have to define the base 14
font at all, just use it.

> Jeremias has been having some ideas regarding font handling for some
> time. You can probably find some of them by looking at the archives [1].
> I hope he'll have time to speak up but, if I remember well, he wants to
> group fonts by kinds: Type1 fonts, TrueType fonts, AFP fonts, AWT fonts,
> SVG fonts, etc. Each kind would be usable by one or more renderers; for
> example the PDF renderer could use Type1, TrueType and AWT fonts
> (although it would not be possible to embed the latter).
> 
> I think this all makes sense. Ideally we would define a common API that
> would be used by the renderers and hide as much as possible of the
> actual font manipulation. The renderers would keep only their format's
> specific code (e.g., creating a PDF font object).

Yep, that's basically the idea. The layout engine still just needs a
general interface where it can access the font metrics and the available
glyphs of a font. Only the renderer has to work with the format-specific
details. Of course, the renderer more or less defines which font sources
can be used for a rendering run, although that statement is a little
difficult to maintain if you render to the intermediate format or if you
want to render a document to two different formats simultaneously (ex.
PDF for archiving and PS for print). Breaking this down, the layout
engine needs a set of font sources it can work with.

> 
> > (initially at least) remain backwards compatible with existing FOP font
> > configurations.  I believe these ideas were spoken about a while ago and
> > I do not think it would be too much work and it should simplify font
> > configuration somewhat and should be more efficient in embedded
> > implementations that make use of more than one renderer.  Its probably a
> > bit late in the day to make the 0.94 release, but in the longer term
> > does anybody have any initial thoughts on this proposal?
> 
> I hope those few ideas will give you some things to think about. Anyway,
> I think there's still quite a bit of work to do in this area, even if
> the auto-detection stuff was a big step forward.
> 
> Thanks for looking into this,
> Vincent
> 
> 
> [1] See, among others, the first thread about FOrayFont (hem, and please
> don't pay attention to the flame war!)
> http://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-dev/200506.mbox/%3c42AC52A7.40503@enseeiht.fr%3e



Jeremias Maerki


Re: FontSources

Posted by Vincent Hennebert <vi...@anyware-tech.com>.
Hi Adrian,

I'm not really a specialist of the font handling stuff in FOP, but
having worked a bit in this area I can drop a few ideas (and ask a few
naive questions), in the hope they will be useful.


> In the process of looking at this bug
> (http://issues.apache.org/bugzilla/show_bug.cgi?id=42861) I came to the
> conclusion that I´m not really happy with the current font handling
> implementation.  There is quite a bit of duplicated effort between the
> renderers with regards to font configuration.

Can you give some examples? Not that I don't believe you, just to have
some concrete things to discuss about. For example, IIRC, in PDFFactory
there is some code to read the font stream for embedding it. I guess
there is about the same code in the PS renderer for embedding TrueType
fonts. That job should really be deferred to the font library which
would directly provide the stream to those renderers that need it. Is
that what you're thinking of?


> I would very much like to see a shared ¨FontSource¨ implementation (e.g.
> both the Postscript and PDF renderers could make use of a shared
> Base14FontSource and CustomFontSource) instead of having their own
> separate configurations.  Any new implementation would of course

What would a FontSource exactly correspond to? What would be the
different kinds of FontSources? Would a Base14FontSource really make
sense? I mean, base14 fonts are PDF- (and, to a certain extent, PS-)
specific. Does a PDF renderer really need to know that it's manipulating
a base14 font? Isn't it just enough to know whether the font should be
embedded or not?

Jeremias has been having some ideas regarding font handling for some
time. You can probably find some of them by looking at the archives [1].
I hope he'll have time to speak up but, if I remember well, he wants to
group fonts by kinds: Type1 fonts, TrueType fonts, AFP fonts, AWT fonts,
SVG fonts, etc. Each kind would be usable by one or more renderers; for
example the PDF renderer could use Type1, TrueType and AWT fonts
(although it would not be possible to embed the latter).

I think this all makes sense. Ideally we would define a common API that
would be used by the renderers and hide as much as possible of the
actual font manipulation. The renderers would keep only their format's
specific code (e.g., creating a PDF font object).


> (initially at least) remain backwards compatible with existing FOP font
> configurations.  I believe these ideas were spoken about a while ago and
> I do not think it would be too much work and it should simplify font
> configuration somewhat and should be more efficient in embedded
> implementations that make use of more than one renderer.  Its probably a
> bit late in the day to make the 0.94 release, but in the longer term
> does anybody have any initial thoughts on this proposal?

I hope those few ideas will give you some things to think about. Anyway,
I think there's still quite a bit of work to do in this area, even if
the auto-detection stuff was a big step forward.

Thanks for looking into this,
Vincent


[1] See, among others, the first thread about FOrayFont (hem, and please
don't pay attention to the flame war!)
http://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-dev/200506.mbox/%3c42AC52A7.40503@enseeiht.fr%3e