Hi all,
Here's a patch against CVS to allow the glib wrapper to access PDF XML
metadata. It simply adds a new QObject property and reads the metadata
with Catalog::readMetadata()->toCString().
Having this functionality would really be handy for me.
Cheers,
Jason
Index: glib/poppler-document.cc
===================================================================
RCS file: /cvs/poppler/poppler/glib/poppler-document.cc,v
retrieving revision 1.42
diff -u -r1.42 poppler-document.cc
--- glib/poppler-document.cc 25 Apr 2007 19:59:10 -0000 1.42
+++ glib/poppler-document.cc 15 May 2007 05:59:19 -0000
@@ -50,6 +50,7 @@
PROP_PAGE_MODE,
PROP_VIEWER_PREFERENCES,
PROP_PERMISSIONS,
+ PROP_METADATA,
};
typedef struct _PopplerDocumentClass PopplerDocumentClass;
@@ -691,6 +692,14 @@
flag |= POPPLER_PERMISSIONS_OK_TO_ADD_NOTES;
g_value_set_flags (value, flag);
break;
+ case PROP_METADATA:
+ catalog = document->doc->getCatalog ();
+ if (catalog && catalog->isOk ())
+ {
+ GooString *s = catalog->readMetadata ();
+ g_value_set_string (value, s->getCString());
+ }
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -833,6 +842,15 @@
POPPLER_TYPE_PERMISSIONS,
POPPLER_PERMISSIONS_FULL,
G_PARAM_READABLE));
+
+ g_object_class_install_property
+ (G_OBJECT_CLASS (klass),
+ PROP_METADATA,
+ g_param_spec_string ("metadata",
+ "XML Metadata",
+ "Embedded XML metadata",
+ NULL,
+ G_PARAM_READABLE));
}
static void
_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler