FileDocCategorySizeDatePackage
WriteTitle.javaAPI DocApache Poi 3.0.14466Mon Jan 01 12:39:42 GMT 2007org.apache.poi.hpsf.examples

WriteTitle

public class WriteTitle extends Object

This class is a simple sample application showing how to create a property set and write it to disk.

author
Rainer Klute <klute@rainer-klute.de>
version
$Id: WriteTitle.java 489730 2006-12-22 19:18:16Z bayard $
since
2003-09-12

Fields Summary
Constructors Summary
Methods Summary
public static voidmain(java.lang.String[] args)

Runs the example program.

param
args Command-line arguments. The first and only command-line argument is the name of the POI file system to create.
throws
IOException if any I/O exception occurs.
throws
WritingNotSupportedException if HPSF does not (yet) support writing a certain property type.

        /* Check whether we have exactly one command-line argument. */
        if (args.length != 1)
        {
            System.err.println("Usage: " + WriteTitle.class.getName() +
                               "destinationPOIFS");
            System.exit(1);
        }

        final String fileName = args[0];

        /* Create a mutable property set. Initially it contains a single section
         * with no properties. */
        final MutablePropertySet mps = new MutablePropertySet();

        /* Retrieve the section the property set already contains. */
        final MutableSection ms = (MutableSection) mps.getSections().get(0);

        /* Turn the property set into a summary information property. This is
         * done by setting the format ID of its first section to
         * SectionIDMap.SUMMARY_INFORMATION_ID. */
        ms.setFormatID(SectionIDMap.SUMMARY_INFORMATION_ID);

        /* Create an empty property. */    
        final MutableProperty p = new MutableProperty();

        /* Fill the property with appropriate settings so that it specifies the
         * document's title. */
        p.setID(PropertyIDMap.PID_TITLE);
        p.setType(Variant.VT_LPWSTR);
        p.setValue("Sample title");

        /* Place the property into the section. */
        ms.setProperty(p);

        /* Create the POI file system the property set is to be written to. */
        final POIFSFileSystem poiFs = new POIFSFileSystem();

        /* For writing the property set into a POI file system it has to be
         * handed over to the POIFS.createDocument() method as an input stream
         * which produces the bytes making out the property set stream. */
        final InputStream is = mps.toInputStream();

        /* Create the summary information property set in the POI file
         * system. It is given the default name most (if not all) summary
         * information property sets have. */
        poiFs.createDocument(is, SummaryInformation.DEFAULT_STREAM_NAME);

        /* Write the whole POI file system to a disk file. */
        poiFs.writeFilesystem(new FileOutputStream(fileName));