[issue21685] zipfile module doesn't properly compress odt documents

Raimondo Giammanco report at bugs.python.org
Sat Jun 7 15:02:05 CEST 2014


New submission from Raimondo Giammanco:

Steps to reproduce
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
-1- Create a document.odt containing an input (text) field and a conditional text field; the latter will show a different text based upon the content of the input text field. [use attached example.odt]
-2- Edit the file by means of following code

from zipfile import ZipFile, ZIP_DEFLATED
document = '/tmp/example.odt'                     # SET ME PLEASE
S2b, R2b = 'SUBST'.encode(), 'REPLACEMENT'.encode()
with ZipFile(document,'a', ZIP_DEFLATED) as z:
	xmlString = z.read('content.xml')
	xmlString = xmlString.replace(S2b, R2b)
	z.writestr('content.xml', xmlString)

-3- Open example.odt with *office

As `REPLACEMENT' is the requested string, one expect to see the relevant conditional text
What happens: the LO function doesn't recognize the string, unless one do not retype it manually

Omitting ZIP_DEFLATED parameter prevents this behaviour from happen (so letting zipfile use the default no-compression method) 


tested on
Python 2.7.3 and Python 3.2.3
Ubuntu 12.04 amd64
LibreOffice Version 4.0.4.2

----------
components: Library (Lib)
files: example.odt
messages: 219933
nosy: rai
priority: normal
severity: normal
status: open
title: zipfile module doesn't properly compress odt documents
type: behavior
versions: Python 3.2
Added file: http://bugs.python.org/file35511/example.odt

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue21685>
_______________________________________


More information about the Python-bugs-list mailing list