From cf7489a1c04d90ef24176f8b8061408b3dc9bc61 Mon Sep 17 00:00:00 2001 From: xsetra Date: Thu, 13 Jul 2017 09:47:25 +0300 Subject: [PATCH 1/2] _pack_document() method changed. ODT files have to start mimetype with non-zipped --- secretary.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/secretary.py b/secretary.py index 0fae7ac..737a205 100644 --- a/secretary.py +++ b/secretary.py @@ -177,7 +177,13 @@ class Renderer(object): self.log.debug('packing document') zip_file = io.BytesIO() + mimetype = files['mimetype'] + del files['mimetype'] + zipdoc = zipfile.ZipFile(zip_file, 'a') + + zipdoc.writestr('mimetype', mimetype, zipfile.ZIP_STORED) + for fname, content in files.items(): if sys.version_info >= (2, 7): zipdoc.writestr(fname, content, zipfile.ZIP_DEFLATED) @@ -572,6 +578,7 @@ class Renderer(object): if not 'result' in locals(): result = xml_source near = result.split('\n')[e.lineno -1][e.offset-200:e.offset+200] + raise ExpatError('ExpatError "%s" at line %d, column %d\nNear of: "[...]%s[...]"' % \ (ErrorString(e.code), e.lineno, e.offset, near)) except: @@ -846,7 +853,7 @@ if __name__ == "__main__": ] render = Renderer() - result = render.render('simple_template.odt', countries=countries, document=document) + result = render.render('simple_template2.odt', countries=countries, document=document) output = open('rendered.odt', 'wb') output.write(result) From 647f5b4f6747b0b68924ef6262d8d05458ef7754 Mon Sep 17 00:00:00 2001 From: xsetra Date: Thu, 13 Jul 2017 10:01:52 +0300 Subject: [PATCH 2/2] typing error, edited. --- secretary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/secretary.py b/secretary.py index 737a205..c0277b7 100644 --- a/secretary.py +++ b/secretary.py @@ -853,7 +853,7 @@ if __name__ == "__main__": ] render = Renderer() - result = render.render('simple_template2.odt', countries=countries, document=document) + result = render.render('simple_template.odt', countries=countries, document=document) output = open('rendered.odt', 'wb') output.write(result)