[poppler] Re: [Patch] Info about document fonts

Kristian Høgsberg krh at bitplanet.net
Tue Jun 7 19:17:03 PDT 2005

Allright, that's a good point.  The iterator API is easier to extend 
without breaking ABI.

Another thing: this is pretty slow on big documents, for the PDF 
specification, test-poppler-glib takes about 30 seconds to extract all 
the fonts.  Do we need some kind of callback API for scanning the 
document to avoid blocking the GUI?

Also, I got a crash on one of the documents I teste it on -- we'll need 
to do something like

   origName = font->getOrigName();
   if (origName == NULL)
       name = new GooString ("(no name)");
       name = origName->copy();

in FontInfo::FontInfo(), since Type3 fonts don't have a BaseName entry 
(which makes sense, but the PDF spec doesn't explicitly mention this).


Marco Pesenti Gritti wrote:
> Hi,
> we are probably going to need more than the name string later. For
> example the embedded boolean... See FontInfo.h for other info that is
> already exposed. Also we may need more later, kde for example use the
> font path.
> You could pass back a list of structures... something like:
> typedef struct {
>   char *name;
>   char *path;
>   gboolean embedded;
>   ....
> }
> ev_font_info_new
> ev_font_info_free
> Though, at that point, I probably prefer the iterator api. Still if
> you like that better I can fixup the patch... let me know.
> Marco
> On 6/7/05, Kristian Høgsberg <krh at bitplanet.net> wrote:
>>Marco Pesenti Gritti wrote:
>>>Slightly updated patch, I implemented evince font properties page with this.
>>>On 6/4/05, Marco Pesenti Gritti <mpgritti at gmail.com> wrote:
>>>>here is a patch that allows to retrieve fonts information from the
>>>>document. It's based on xpdf pdffonts code. It's not complete yet but
>>>>if it make sense I'd like to check it in so that we start playing with
>>>>the user interface in evince and see what we need more...
>>>>Suggestions welcome, my c++/xpdf knowledge is not that great.
>>Do we actually need a iterator for this?  What about just returning a
>>GList of g_strdup()'ed strings?

More information about the poppler mailing list