OpenOffice::OODoc::Meta - Access to document properties (metadata)


The OpenOffice::OODoc::Meta class is a specialist derivative of OpenOffice::OODoc::XPath for XML members which describe the metadata of documents.


Constructor : OpenOffice::OODoc::Meta->new(<parameters>)

        Short Form: ooMeta(<parameters>)

        See OpenOffice::OODoc::XPath->new

        The XML member loaded by default is 'meta.xml'.


            $my meta    = OpenOffice::OODoc::Meta->new
                (file => 'document.sxw');

        returns a new object which represents the metadata of the "document.sxw".


        Adds the given text to the list of document keywords if not already


            $meta->addKeyword("tech watch");


        Without argument, returns the document's creation date in (ISO-8601) format.

        Example of returned value:


        The returned value can be converted in standard numeric time format
        with the ooTimelocal() function.

        With argument, inserts the given string (without checking) as the
        creation date. The argument, if any, must comply with the OOo
        (ISO-8601) date format. The ooLocaltime() function can be used in
        order to convert a regular Perl time() value in OOo format.


        Without argument, returns the document author's name.

        With argument, modifies the document author's name.


        Without argument, returns the document's date of last modification,
        in format.

        With argument, inserts the given string (without checking) as the
        last modification date. The argument, if any, must comply with the
        OOo date format (ISO-8601). The ooLocaltime() function can be used
        in order to convert a regular Perl time() value in OOo format.

        The returned value can be converted in standard numeric time format
        with the ooTimelocal() function.


        Without argument, returns the contents of the document properties
        "Description" field.

        With argument, inserts the given text in the "Description" field.


        Without argument, returns the number of edit sessions (i.e. saves,
        under or StarOffice). Or, technically, the number of

        With argument, modifies this number without checking.


        Without argument, returns the total editing time for the document,
        in date/time format.

        For example, the returned string can be:


        which in this case means that the document has been edited for 2
        days, 11 hours, 27 minutes and 33 seconds.

        With argument, forces a new value into this property without


        Without argument, returns a label representing the signature of the
        software which generated the document. Example of signature:

            " 1.1.1 (Linux)"

        With argument, inserts any signature.


        Without argument, returns a list of the document's keywords. In a
        list context, the result is a table where each element is a keyword.
        In a scalar context, the keywords are returned in a single character
        string, each of which is separated by a comma and a space.

        With arguments, adds a list of keywords to the existing one. The
        only checking carried out is to see if the keyword already exists,
        if so it is not added.


        Without argument, returns the content of the language variable.


        With argument, changes the content of this variable without


        Removes the given keyword if it exists.


        Without argument, returns a hash which represents the entire
        "statistics" section of the metadata. The content depends on the
        type of document.


                'meta:table-count'      => number of tables
                'meta:image-count'      => number of images
                'meta:object-count'     => number of OLE objects
                'meta:page-count'       => number of pages
                'meta:paragraph-count'  => number of paragraphs
                'meta:word-count'       => number of words
                'meta:character-count'  => number of characters


                'meta:table-count'      => number of sheets
                'meta:cell-count'       => number of non-empty cells
                'meta:object-count'     => number of objects (images, etc.)


            my $meta    = OpenOffice::OODoc::Meta->new("invoice.sxc");
            my %stat    = $meta->statistic;
            print       "This invoice contains " .
                "$stat{'meta:cell-count'} cells and "   .
                "$stat{'meta:table-count'} pages\n";

        With arguments, you can modify (or falsify ?!) all or some of the
        statistical data and even create attributes which are not created by
        the or StarOffice software. Arguments are passed in
        pairs [key => value] and handled without checking.


                ('meta:table-count' => '4', 'status' => 'OK');

        This example forces the number of tables to 4 (whatever the reality)
        and adds an arbitrary attribute 'status' with value 'OK' [18] .


        Without argument, returns the document's subject.

        With argument, adds a new subject to the document.


        Without argument, returns the document's title.

        With argument, adds a new title to the document.


        Returns a list of the four fields which appear in the User tab of
        the Properties dialog in These fields are called, by
        default, "Info 1" to "Info 4". The end user can change their names
        and their content.

        The list is returned in the form of a hash of 4 elements whose
        keywords represent the field names and whose values represent their

        By supplying a similar hash of 4 elements as an argument, this
        method deletes and replaces the existing content.

        If the number of elements supplied in the hash is less than 4, the
        last fields are left untouched. If, however, the hash contains more
        than 4 elements, only the first 4 are taken into account.


        As for OpenOffice::OODoc::XPath

Exported functions


        Converts the numeric time given in argument to an OpenOffice-compliant
        date (ISO-8601). The argument type is the same as for the standard
        Perl localtime() function, i.e. a number of seconds since the "epoch".
        It can be, for example, a value previously returned by a time() call.

        Without argument, returns the current local time in OOo format.

        The result of this function can be used as an argument for the date()
        or creation_date() methods of OpenOffice::OODoc::Meta.



        This line puts the current time as the last modification date in the
        document (assuming $doc is an OpenOffice::OODoc::Meta object).


        Converts a date in OOo format (ISO-8601) in a regular Perl numeric
        time format, i.e. a number of seconds since the "epoch". So, the
        returned value can be processed with any Perl date formatting or
        calculation function.


                my $date_created = ooTimelocal($doc->creation_date());
                $lt = localtime($date_created);
                $elapsed = time() - $date_created;
                print "This document has been created $date_created\n";
                print "$elapsed seconds ago";
        This sequence prints the creation date of a document in local time
        string format, then prints the number of seconds between the creation
        date and now.

        Note: This function requires the Time::Local Perl module.


See OpenOffice::OODoc::Notes(3) for the footnote citations ([n]) included in this page.

This man page has been adapted from a chapter of the original reference manual. This manual is in (SXW) format.

It's freely downloadable from the project page (


Copyright 2004 by Genicorp, S.A. (

Initial developer: Jean-Marie Gouarne (

Initial English version of the reference manual by Graeme A. Hunter (

Licensing conditions:

        - Genicorp General Public Licence v1.0
        - GNU Lesser General Public License v2.1