[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