[poppler] [Patch] Add some more information to FontInfo

Albert Astals Cid aacid at kde.org
Fri Jul 22 10:14:10 EST 2005


A Divendres 22 Juliol 2005 01:52, Kristian H=C3=B8gsberg va escriure:
> Hi Martin,
>
> Looks good, please commit.  Actually another feature I was thinking of
> for the font dialog would be showing the substituted font that's
> actually used.  For example, when a document asks for "Times-Roman"
> evince substitutes "Nimbus Roman No9 L" on my system.  That might be
> interesting information if, say, you wanted to use that font in another
> application.  Or maybe it's just because acroread has that feature, and
> I wanted it in evince when testing Alberts fontconfig patch ;-)


Well, we do that in kpdf from trunk, so it can be added easily to poppler t=
oo.

Here's a screeny:=20

http://usuarios.lycos.es/tsdgeos/kpdf-fonts.png

Albert

>
> Kristian
>
> Martin Kretzschmar wrote:
> > Am Samstag, den 18.06.2005, 23:40 +0200 schrieb Martin Kretzschmar:
> >>this patch exposes information about the font type in the glib api (and
> >>adds it to the FontInfo class). And it strips the subset tags from font
> >>names. I used it to implement this in evince:
> >>
> >>http://www.gnome.org/~martink/2005/stuff/Screenshot-FontDetails.png
> >>http://www.gnome.org/~martink/2005/patches/evince-font-details.diff
> >>
> >>Comments?
> >
> > So, lets try again. The xpdf half of the patch is obsolete because a
> > similar feature was added for the qt bindings, here's the rest, updated
> > to use that. Now it's a glib/ only patch.
> >
> > Would be nice to have it in poppler before GNOME 2.12 UI-freeze next
> > week.
> >
> > Regards,
> >
> > Martin
> >
> >
> > ------------------------------------------------------------------------
> >
> > ? link-it
> > cvs diff: Diffing .
> > Index: ChangeLog
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > RCS file: /cvs/poppler/poppler/ChangeLog,v
> > retrieving revision 1.147
> > diff -u -p -r1.147 ChangeLog
> > --- ChangeLog	15 Jul 2005 19:55:30 -0000	1.147
> > +++ ChangeLog	20 Jul 2005 21:12:58 -0000
> > @@ -1,3 +1,14 @@
> > +2005-07-20  Martin Kretzschmar  <martink at gnome.org>
> > +
> > +	* glib/poppler-document.cc (poppler_fonts_iter_get_name): if the
> > +	font is a subset, strip the ABCDEF+ tag.
> > +	(poppler_fonts_iter_get_full_name): does what the old get_name did.
> > +	(poppler_fonts_iter_get_font_type, poppler_fonts_iter_is_embedded)
> > +	(poppler_fonts_iter_is_subset): new wrappers.
> > +
> > +	* glib/poppler-document.h (PopplerFontType): new enum.
> > +	Update prototypes.
> > +
> >  2005-07-15  Martin Kretzschmar  <martink at gnome.org>
> >
> >  	* test/gtk-cairo-test.cc: update for 2005-06-27 change to actually
> > cvs diff: Diffing fofi
> > cvs diff: Diffing glib
> > Index: glib/poppler-document.cc
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > RCS file: /cvs/poppler/poppler/glib/poppler-document.cc,v
> > retrieving revision 1.23
> > diff -u -p -r1.23 poppler-document.cc
> > --- glib/poppler-document.cc	7 Jul 2005 11:13:24 -0000	1.23
> > +++ glib/poppler-document.cc	20 Jul 2005 21:12:59 -0000
> > @@ -791,7 +791,7 @@ poppler_fonts_iter_get_type (void)
> >  }
> >
> >  const char *
> > -poppler_fonts_iter_get_name (PopplerFontsIter *iter)
> > +poppler_fonts_iter_get_full_name (PopplerFontsIter *iter)
> >  {
> >  	GooString *name;
> >  	FontInfo *info;
> > @@ -806,6 +806,58 @@ poppler_fonts_iter_get_name (PopplerFont
> >  	}
> >  }
> >
> > +const char *
> > +poppler_fonts_iter_get_name (PopplerFontsIter *iter)
> > +{
> > +	FontInfo *info;
> > +	const char *name;
> > +
> > +	name =3D poppler_fonts_iter_get_full_name (iter);
> > +	info =3D (FontInfo *)iter->items->get (iter->index);
> > +
> > +	if (info->getSubset() && name) {
> > +		while (*name && *name !=3D '+')
> > +			name++;
> > +
> > +		if (*name)
> > +			name++;
> > +	}
> > +
> > +	return name;
> > +}
> > +
> > +PopplerFontType
> > +poppler_fonts_iter_get_font_type (PopplerFontsIter *iter)
> > +{
> > +	FontInfo *info;
> > +
> > +	g_return_val_if_fail (iter !=3D NULL, POPPLER_FONT_TYPE_UNKNOWN);
> > +
> > +	info =3D (FontInfo *)iter->items->get (iter->index);
> > +
> > +	return (PopplerFontType)info->getType ();
> > +}
> > +
> > +gboolean
> > +poppler_fonts_iter_is_embedded (PopplerFontsIter *iter)
> > +{
> > +	FontInfo *info;
> > +
> > +	info =3D (FontInfo *)iter->items->get (iter->index);
> > +
> > +	return info->getEmbedded();
> > +}
> > +
> > +gboolean
> > +poppler_fonts_iter_is_subset (PopplerFontsIter *iter)
> > +{
> > +	FontInfo *info;
> > +
> > +	info =3D (FontInfo *)iter->items->get (iter->index);
> > +
> > +	return info->getSubset();
> > +}
> > +
> >  gboolean
> >  poppler_fonts_iter_next (PopplerFontsIter *iter)
> >  {
> > Index: glib/poppler-document.h
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > RCS file: /cvs/poppler/poppler/glib/poppler-document.h,v
> > retrieving revision 1.13
> > diff -u -p -r1.13 poppler-document.h
> > --- glib/poppler-document.h	15 Jun 2005 15:02:46 -0000	1.13
> > +++ glib/poppler-document.h	20 Jul 2005 21:12:59 -0000
> > @@ -52,6 +52,18 @@ typedef enum
> >    POPPLER_PAGE_MODE_USE_ATTACHMENTS,
> >  } PopplerPageMode;
> >
> > +typedef enum
> > +{
> > +  POPPLER_FONT_TYPE_UNKNOWN,
> > +  POPPLER_FONT_TYPE_TYPE1,
> > +  POPPLER_FONT_TYPE_TYPE1C,
> > +  POPPLER_FONT_TYPE_TYPE3,
> > +  POPPLER_FONT_TYPE_TRUETYPE,
> > +  POPPLER_FONT_TYPE_CID_TYPE0,
> > +  POPPLER_FONT_TYPE_CID_TYPE0C,
> > +  POPPLER_FONT_TYPE_CID_TYPE2
> > +} PopplerFontType;
> > +
> >  typedef enum /*< flags >*/
> >  {
> >    POPPLER_VIEWER_PREFERENCES_UNSET =3D 0,
> > @@ -105,17 +117,21 @@ PopplerAction    *poppler_index_iter_get
> >  gboolean          poppler_index_iter_next       (PopplerIndexIter=20
> > *iter);
> >
> >  /* Interface for getting the Fonts of a poppler_document */
> > -PopplerFontInfo  *poppler_font_info_new         (PopplerDocument =20
> > *document); -gboolean          poppler_font_info_scan      =20
> > (PopplerFontInfo   *font_info, -						 int                n_pages,
> > -						 PopplerFontsIter **iter);
> > -void		  poppler_font_info_free	(PopplerFontInfo   *font_info);
> > -
> > -GType             poppler_fonts_iter_get_type   (void) G_GNUC_CONST;
> > -PopplerFontsIter *poppler_fonts_iter_copy       (PopplerFontsIter=20
> > *iter); -void              poppler_fonts_iter_free     =20
> > (PopplerFontsIter  *iter); -const char       *poppler_fonts_iter_get_na=
me
> >   (PopplerFontsIter  *iter); -gboolean          poppler_fonts_iter_next=
 =20
> >     (PopplerFontsIter  *iter); +PopplerFontInfo  *poppler_font_info_new=
 =20
> >          (PopplerDocument   *document); +gboolean        =20
> > poppler_font_info_scan           (PopplerFontInfo   *font_info, +						=
 =20
> >  int                n_pages,
> > +						    PopplerFontsIter **iter);
> > +void		  poppler_font_info_free	   (PopplerFontInfo   *font_info);
> > +
> > +GType             poppler_fonts_iter_get_type      (void) G_GNUC_CONST;
> > +PopplerFontsIter *poppler_fonts_iter_copy          (PopplerFontsIter=20
> > *iter); +void              poppler_fonts_iter_free        =20
> > (PopplerFontsIter  *iter); +const char       *poppler_fonts_iter_get_na=
me
> >      (PopplerFontsIter  *iter); +const char     =20
> > *poppler_fonts_iter_get_full_name (PopplerFontsIter  *iter);
> > +PopplerFontType   poppler_fonts_iter_get_font_type (PopplerFontsIter
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > poppler mailing list
> > poppler at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/poppler
>
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/poppler

		
______________________________________________ 
Renovamos el Correo Yahoo! 
Nuevos servicios, más seguridad 
http://correo.yahoo.es


More information about the poppler mailing list