View Single Post
  #3   Report Post  
Posted to microsoft.public.word.docmanagement,microsoft.public.word.programming
Phantom[_2_] Phantom[_2_] is offline
external usenet poster
 
Posts: 3
Default Open Packaging Format creator/manager for OS X

On 2009-10-11 12:26:01 -0700, "Yves Dhondt" said:


"Phantom" wrote in message
news:2009101110305975249-phantom@mailinatorcom...
I'm looking for an Open Packaging Format creator/manager for OS X.

Specfically, I'm trying to generate dynamic .docx files, which is going
pretty well, but I'm not able to repackage the edited files without
blowing up Word... any rel(s), image, or XML file in the package that I
change (other than the document.xml itself) is seen as corrupt by Word
when it tries to open the file. Sure enough, Word is clever enough to
recover the remaining elements, but anything I change gets nuked.


What happens if you open one of the XML files inside the container and
then save it without changing anything? Does that corrupt the document
as well? If so, extract the XML file from both the correct and corrupt
version and do a byte-by-byte comparison. It could be that the editor
you use adds a byte order mark (BOM) at the start of an XML file.


no, only when something is added to the file (without its proper meta
infomation, I'm guessing).


That prevents me from swapping in new images (charts in my case), or
modifying any hyperlinks (which exist in .rel files).

I found that I can open up a .docx file directly in Stuffit Archive
Manager (SAM) (without even having to change the extension), which
eliminates the need to re-zip the .docx files from scratch (which seems
to blow my entire document when I try). Using SAM, I can extract only
the file I choose, edit it, put it back, and the other elements remain
intact.

The key problem appears to be the compression technique: the docx isn't
actually a Plain Old Zip (POZ) file, it's actually an Open Packaging
Convention (OPC) file:

http://en.wikipedia.org/wiki/Open_Packaging_Conventions


From a compression point of view, there isn't any difference between
the two. POZ and OPC are the same format. The difference is that a POZ
file has no notion of its contents while an OPC file uses standardized
entrypoints to find the relation between the different files in the
container.

Now, if I could only find an OPC creator/manager for the Mac... a GUI
would be great, but a command line would do as well. I seemed to have
found what at first appeared such a tool, but it doesn't seem to do
anything except manage MacPorts:
http://www.versiontracker.com/dyn/moreinfo/macosx/32608

FYI, Porticus needs MacPorts installed as well:
http://www.macports.org/install.php

However, I can't seem to see how Porticus helps me with the OPC file
management... I'm probably on a wild turkey chase with that, but there
might be something there.

I'm guessing that there are Mac developers here more informed than me,
hoping someone can shed light on my OPC requirements.

thanks in advance, folks.


Mono implements the System.IO.Packaging namespace for .Net on MacOS
(not sure if it is in the latest release already). That namespace
contains an API for accessing an manipulating OPC files. I know the API
works as I have written apps already which use it (I'm not a Mac
specialist, I just needed to make some software cross-platform). Of
course, this means you would still have to program your application
yourself.

Yves


..net isn't going to help me much on OS X... this is supposed to be an
open standard, so it should go without saying that I shouldn't have to
use a MS product to manage the document.

to Microsoft's credit, the document is pretty well formed, and they're
95% of the way there... I just can't create the dang OPC file.