Is it possible to construct a zip file from the extracted contents of
an ods or odt file that is identical to the original ods/odt file?  I
would like to be able to do something like the following:

$ unzip doc.odt -d doc
$ cd doc
$ zip [options] ../doc2.zip *
$ diff ../doc.odt ../doc2.zip && echo match
match

I tried the following with [options] being -9Xr, but the resulting zip
file was 7163 bytes and the original odt was 6741 bytes.

I've attempted to determine the sequence of operations that OOo uses
to create its zip files by analyzing the source code, but I haven't
figured out exactly how it does it.  There seems to be some
compression going on in AddXMLAsZipToTheStorage in
binfilter/bf_sfx2/source/doc/sfx2_objstor.cxx, which uses the ZCodec
class implemented in tools/source/zcodec/zcodec.cxx (which in turn
uses zlib), but I'm not sure if this is the code that handles all the
zip file stuff and I don't know where it gets the list of files to
compress.

Does someone know of a set of zlib operations that will produce a zip
file identical to the one OOo produces?  Or is there a set of options
I can pass to a common zip command-line tool that will do this?

This has been discussed to some extent before
(http://www.openoffice.org/servlets/BrowseList?list=dev&by=thread&from=1243563),
but it was specifically in relation to storing OOo files in
Subversion, which is in the end what I'm interested in.  It would be
nice to commit OOo files to Subversion, have it store the XML files
individually, and then get it to reproduce an identical OOo file from
the XML files when a user checks it out.

Denver

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to