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

Reply via email to