[Erp5-report] r43580 gabriel - in /erp5/trunk/utils/cloudooo/cloudooo/handler/pdf: ./ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Feb 22 21:45:33 CET 2011
Author: gabriel
Date: Tue Feb 22 21:45:33 2011
New Revision: 43580
URL: http://svn.erp5.org?rev=43580&view=rev
Log:
implemented code to set metadata in pdf documents
Modified:
erp5/trunk/utils/cloudooo/cloudooo/handler/pdf/handler.py
erp5/trunk/utils/cloudooo/cloudooo/handler/pdf/tests/testPDFHandler.py
Modified: erp5/trunk/utils/cloudooo/cloudooo/handler/pdf/handler.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/pdf/handler.py?rev=43580&r1=43579&r2=43580&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/handler/pdf/handler.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/handler/pdf/handler.py [utf8] Tue Feb 22 21:45:33 2011
@@ -85,3 +85,26 @@ class PDFHandler(object):
Keyword arguments:
metadata -- expected an dictionary with metadata.
"""
+ text_template = "InfoKey: %s\nInfoValue: %s\n"
+ text_list = [text_template % (key.capitalize(), value) \
+ for key, value in metadata.iteritems()]
+ metadata_file = File(self.document.directory_name,
+ "".join(text_list),
+ "txt")
+ output_url = mktemp(suffix=".pdf",
+ dir=self.document.directory_name)
+ command = ["pdftk",
+ self.document.getUrl(),
+ "update_info",
+ metadata_file.getUrl(),
+ "output",
+ output_url
+ ]
+ stdout, stderr = Popen(command,
+ stdout=PIPE,
+ stderr=PIPE,
+ env=self.environment).communicate()
+ try:
+ return open(output_url).read()
+ finally:
+ self.document.trash()
Modified: erp5/trunk/utils/cloudooo/cloudooo/handler/pdf/tests/testPDFHandler.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/pdf/tests/testPDFHandler.py?rev=43580&r1=43579&r2=43580&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/handler/pdf/tests/testPDFHandler.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/handler/pdf/tests/testPDFHandler.py [utf8] Tue Feb 22 21:45:33 2011
@@ -54,6 +54,17 @@ class TestPDFHandler(HandlerTestCase):
self.assertNotEquals(metadata, {})
self.assertEquals(metadata["title"], 'Free Cloud Alliance Presentation')
+ def testsetMetadata(self):
+ """Test if the metadata is inserted correctly"""
+ pdf_document = open("data/test.pdf").read()
+ handler = PDFHandler(self.tmp_url, pdf_document, "pdf", **self.kw)
+ metadata_dict = {"title": "Set Metadata Test", "creator": "gabriel\'@"}
+ new_document = handler.setMetadata(metadata_dict)
+ handler = PDFHandler(self.tmp_url, new_document, "pdf", **self.kw)
+ metadata = handler.getMetadata()
+ self.assertEquals(metadata["title"], 'Set Metadata Test')
+ self.assertEquals(metadata['creator'], 'gabriel\'@')
+
def test_suite():
suite = unittest.TestSuite()
More information about the Erp5-report
mailing list