[cc-devel] Bugs on PdfLicenseManager

Juan José Marín Martínez juanj.marin at juntadeandalucia.es
Sat Jun 6 05:36:26 EDT 2009


Hi,

For testing my patch for adding support for evince, the GNOME document viewer,
I try the PdfLicenseManager.

I've realised that this program doesn't tag the pdfs correctly. Possibly the
example PDF on [1], that I mentioned on a previous message on this list [2]
was tagged with this program. I was told that the licence uri must be a a
resource, not a literal.

I've written a quick and dirty patch for this [3]

Others bugs/ missing features I found are:

1) It doesn't let you to enter the web statement of your choice. It sets the
web statement with the license uri. This is a bug, FMHO and it asks loudly for
a feature ;). The web statement must be optional and be choosen by the user
(additionally the uri can be checked syntactically and even checked for
availability)

2) Only tag the with lang='x-default'. It would be nice to tag other languages
too.

3) It must let you to choose the Jurisdiction of your license

4) The interface is only in English.

   -- Juanjo Marín


[1] http://bugzilla.gnome.org/show_bug.cgi?id=349173#c6
[2] http://lists.ibiblio.org/pipermail/cc-devel/2009-June/001385.html
[3]
Index: pdflicense/XmpManager.java
===================================================================
--- pdflicense/XmpManager.java	(revisión: 12728)
+++ pdflicense/XmpManager.java	(copia de trabajo)
@@ -87,11 +87,11 @@

 		nl = doc.getElementsByTagName("cc:license");
 		if (nl!=null) {
-			Node cclicense = nl.item(0);
+			Element cclicense = (Element)nl.item(0);
 			if (cclicense != null) {
-				Node text = cclicense.getFirstChild();
+				Attr text = cclicense.getAttributeNode("rdf:resource");
 				if (text != null) {
-					lic.setCCLicense( text.getNodeValue() );
+					lic.setCCLicense( text.getValue() );
 				}
 			}
 		}
@@ -175,7 +175,7 @@
 			Element cclicense = doc.createElement("cc:license");
 			descr.setAttribute("rdf:about", "");
 			descr.setAttribute("xmlns:cc", "http://creativecommons.org/ns#");
-			cclicense.appendChild(doc.createTextNode(lic.getUrl()) );
+			cclicense.setAttribute("rdf:resource", lic.getUrl() );
 			//cclicense.setAttribute("rdf:", lic.getUrl() );
 			descr.appendChild(cclicense);
 			rdf.appendChild(descr);
@@ -313,7 +313,7 @@
 		s.append(" </rdf:Description>\n");

 		s.append(" <rdf:Description rdf:about=''
xmlns:cc='http://creativecommons.org/ns#'>\n");
-		s.append("  <cc:license>"+lic.getUrl()+"</cc:license>\n");
+		s.append("  <cc:license rdf:resource="+lic.getUrl()+"/>\n");
 		s.append(" </rdf:Description>\n");

 		s.append("</rdf:RDF>\n");





More information about the cc-devel mailing list