There are not many ways of accessing OOO docuemnts without resorting to parsing raw XML, so this module was a welcomed find. For simple tasks, it performs well. For more complicated tasks, if performs reasonably only if you can make you way through the badly-formatted, unintuitive manual, a task made time-consuming and frustrating by the peculiarity of the API. Who would guess that to parse a spreadsheet without unexpected results, one has to call a normalizeSheet method in a class named Text?
With a new API, this module could be great. As it is, it is functional.
Spent many frustrating hours trying to get a table style to take.
Would be helpful if there was an example showing how to use an existing base document, making copies of a table and then changing the values of the cells in that table, creating a span within that table and applying text formatting and borders to that table (which get messed up when you change anything).
Here's some additional information everyone should know (the zip file aspect, while obvious to the developer and those familiar with ODF, should be pointed out to the new user so that he/she can resolve issues not covered in the documentation):
# GordM's Notes:
# - an openoffice blah.odt file is actually a zip
# file containing a bunch of files
# you will want to manipulate with OpenOffice::OODoc
# specifically, the files content.xml and styles.xml
# - this zip file can be opened with the unxutils unzip command:
# system("unzip.exe -d result2 result.odt");
# - after manual testing edits have been inserted,
# the odt zip file can be created with the batch file:
# rem must quit out of result2.odt before running...
# rm result2.odt
# cd result2
# zip.exe -r ../blah *
# mv ../blah.zip ../result2.odt
# - the unzipped file is very handy for understanding
# why your script is not working and what it would
# take to make it work
# - the unzipped file is very handy for capturing all the
# properties needed from a style you created in writer
# and now wish to create a version of in perl
# - for some reason, certain style definitions do not work
# when stored in the styles.xml file (for me: tweaking
# borders of tables) so they can be stored in the content
# file using:
# instead of the typical:
# $stylesX ->createStyle(...
# where these were defined previously:
# my $odtfile = "result.odt";
# my $base_OO = ooFile($odtfile);
# my $contentX = odfConnector (container=>$base_OO, part=>'content', readable_XML=>'true') or die "# Unable to get the content\n";
# my $stylesX = odfConnector (container=>$base_OO, part=>'styles', readable_XML=>'true') or die "# Unable to get the styles\n";
#note "readable_xml" formats the output xml making it easy to edit
# (using activeState Perl 5.10, OpenOffice 3.2, ::OODoc 2.124)
This module helps to easy build OpenOffice documents, therefore the full control of all aspects of document formatting at the present is not seems possible. Perhaps this imperfection is temporary and may be explained with have in view the ODF format compexity and vagueness (of its interpretations).
First, this module is impressive and fast, it opens up a a whole world of possibilities when it comes to creating and editing OpenOffice documents. I use this in a production environment on a web server. I modify a 'template' .odt file with all of the styles and formatting elements already created, just insert relevant bits for a report and "presto!" high quality presentations.
But for all of its power, this module is hard to 'climb into'. The ODF spec is complex and a module for dealing with that complexity is bound to be hard to work through. This module will require plenty of trial and error until you become accustomed to how things work. Anything beyond basic tasks is going to require a significant investment of time and energy to learn the documentation and methodology. This module would benefit from a more complete list of example scripts.
Very useful module. I used it to process OpenDocument files, in both ways: create and parse ones to gain the data. It is very clear written and is easy extendable. With the help of this module I created a three-tier application that uses OpenDocument files on the client side.
A very powerful module. It covers many of the things you'd want to do with OOo. When this module didn't have what I needed I created special OOo macros and executed OOo as a utility from the command line (or a script).