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 <rep...@bugs.python.org> <http://bugs.python.org/issue21685> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com