This package was tested in OpenOffice.org version 1:2.4.1-17+b1 on
Debian Lenny.

Because of limitations in the Impress API, accessibility hooks for
non-hidden instances of OpenOffice needed to be used. Consequently,
OpenOffice needs to believe that it's running in X rather than run
in headless mode. So this tool also depends on Xvfb.

To install this tool, the user it is to be run as needs to have a
complete .openoffice.org2 directory treein their home directory,
and this tree needs to contain the macro file PrependSlide.xba in
~/.openoffice.org2/user/basic/Standard/ . This tarball already
includes a .openoffice.org2 directory tree with PrependSlide.xba
suitably placed

Because the slides are prepended to a temporary copy of the file
containing the last slide, this path to this temporary file needs
to be assigned to the variables $pptmpfile in PPT-cat.pl and 
cTmpFileName in PrependSlide.xba (the default value is
/home/ppt/tmpcat.ppt). If you expect multiple merges to be
performed concurrently, you will need to make multiple (uniquely
named) copies of PrependSlide and PPT-cat, each with its own temp
filename (note also that copies of PPT-cat will also need to be
edited to call the appropriately named copy of PrependSlide).

Also, because OpenOffice lacks the means to ensure that its commands
are run serially (both within macros, or invoking OpenOffice in
general), delays were introduced to ensure that commands have a
chance to complete before subsequent commands are run. There are 4
half-second delays (wait(500)) in PrependSlide.xba that can be
lengthened if the script isn't working, or shortened if you want to
make it run faster (and think you can get away with it). PPT-cat
also contains a 5 second delay between invocations of PrependSlide
which you might also want to tweak (after all, having to wait an
entire minute for 13 slides to be merged into a single presentation
can be pretty frustrating).

Once the scripts are tweaked and installed, single slide
presentations can be merged by invoking

xvfb-run -a PPT-cat.pl infile1 [infile2 [infile3]...] outfile

from a shell, or in an equivalent exec() or system() call, etc.

If the presentations contain multiple slides, only the first slide
will be merged in (except for the last presentation, all of whose
slides will be present).

---

For ppt2png, the same dependencies/testing environment are used with
the addition of GraphicsMagick/ImageMagick for resizing the PNG file.
The PNG file is produced with the PNG export filter native to
OpenOffice. In testing, this filter produced PNG files with a size of
1102x827 and the text fields were all highlighted. 

The syntax for ppt2png is simply

ppt2png infile.ppt outfile.png [width]

When no width is specified, the default width is 600 pixels. Widths
greater than 1102 can be expected to be grainy, owing to the source PNG
produced by OpenOffice having a width of 1102. This tool was originally
written to overcome this limitation by having OpenOffice export a PDF,
but ImageMagick, GraphicsMagick, and pdftk all fail to properly support
landscape-oriented PDFs as produced by OpenOffice, so it was necessary
to assume the limitations of the OpenOffice PNG export filter
