Example usage for org.apache.poi.hpsf DocumentSummaryInformation getCustomProperties

List of usage examples for org.apache.poi.hpsf DocumentSummaryInformation getCustomProperties

Introduction

In this page you can find the example usage for org.apache.poi.hpsf DocumentSummaryInformation getCustomProperties.

Prototype

public CustomProperties getCustomProperties() 

Source Link

Document

Gets the custom properties.

Usage

From source file:com.pnf.plugin.ole.parser.StreamReader.java

License:Apache License

private List<INode> readDocSummaryStream(ByteBuffer stream) {
    List<INode> roots = new LinkedList<>();
    String propType = "Property";

    try {//w  ww . j  a v  a2 s  .  co m
        DocumentSummaryInformation info = (DocumentSummaryInformation) PropertySetFactory
                .create(new ByteArrayInputStream(stream.array()));

        propType = "int";
        StreamEntry counts = new StreamEntry("Counts");
        if (info.getLineCount() != 0)
            counts.addChild(new StreamEntry("Line count", propType, String.valueOf(info.getLineCount())));

        if (info.getByteCount() != 0)
            counts.addChild(new StreamEntry("Byte count", propType, String.valueOf(info.getByteCount())));

        if (info.getHiddenCount() != 0)
            counts.addChild(new StreamEntry("Hidden count", propType, String.valueOf(info.getHiddenCount())));

        if (info.getMMClipCount() != 0)
            counts.addChild(new StreamEntry("MMClip count", propType, String.valueOf(info.getMMClipCount())));

        if (info.getNoteCount() != 0)
            counts.addChild(new StreamEntry("Note count", propType, String.valueOf(info.getNoteCount())));

        if (info.getParCount() != 0)
            counts.addChild(new StreamEntry("Par count", propType, String.valueOf(info.getParCount())));

        if (info.getSlideCount() != 0)
            counts.addChild(new StreamEntry("Slide count", propType, String.valueOf(info.getSlideCount())));

        if (counts.size() > 0)
            roots.add(counts);

        propType = "String";
        StreamEntry strings = new StreamEntry("Strings");
        strings.addChild(new StreamEntry("Category", propType, info.getCategory()));
        strings.addChild(new StreamEntry("Company", propType, info.getCompany()));
        strings.addChild(new StreamEntry("Manager", propType, info.getManager()));
        strings.addChild(new StreamEntry("Presentation Format", propType, info.getPresentationFormat()));

        roots.add(strings);

        propType = "Custom";
        StreamEntry custom = new StreamEntry("User-defined properties");
        CustomProperties props = info.getCustomProperties();

        if (props != null) {
            Set<Entry<Object, CustomProperty>> entries = props.entrySet();

            for (Entry<Object, CustomProperty> e : entries) {
                try {
                    custom.addChild(new StreamEntry(e.getValue().getName(), propType,
                            e.getValue().getValue().toString()));
                } catch (NullPointerException ex) {
                    // ignore any errors
                }
            }
        }
    } catch (Throwable t) {
        addMessage("Attempted to read " + DOC_SUMM + " stream but no property sets were found.", null,
                Message.CORRUPT);
    }

    return roots;
}

From source file:edu.casetools.rcase.extensions.excel.control.Exporter.java

License:Open Source License

private void setDefaultProperties(String templateName) {
    HSSFWorkbook hworkbook = (HSSFWorkbook) this.workbook;
    hworkbook.createInformationProperties();
    SummaryInformation si = hworkbook.getSummaryInformation();
    DocumentSummaryInformation dsi = hworkbook.getDocumentSummaryInformation();
    si.setAuthor(I18nMessageService.getString("Excel.Author"));

    dsi.setCompany(I18nMessageService.getString("Excel.Company"));
    si.setApplicationName(I18nMessageService.getString("Excel.Application"));
    org.apache.poi.hpsf.CustomProperties cp = dsi.getCustomProperties();

    cp.put("Table Template", templateName);
    dsi.setCustomProperties(cp);//from  w  w w.j a v a2s. c o  m
}

From source file:edu.ku.brc.specify.tasks.subpane.wb.ConfigureXLS.java

License:Open Source License

/**
 * @param poifs/*from w  w w . j a v a2  s.c  o m*/
 * 
 * Reads workbench mappings from the XLS file.
*/
protected void readMappings(final POIFSFileSystem poifs) {
    DocumentSummaryInformation dsi = getDocSummary(poifs);
    if (dsi != null) {
        CustomProperties props = dsi.getCustomProperties();
        List<ImportColumnInfo> sortedCols = new ArrayList<ImportColumnInfo>(colInfo);
        Collections.sort(sortedCols);
        if (doReadMappings(props, sortedCols)) {
            //Just in case colInfo is not sorted by column index...
            boolean usesViewOrder = usesViewOrderKey(props);
            int mapIdxOffset = usesViewOrder ? 1 : 0;
            Set<String> dupedCols = usesViewOrder ? new HashSet<String>() : getDuplicatedColTitles(sortedCols);
            for (ImportColumnInfo col : sortedCols) {
                if (!dupedCols.contains(col.getColTitle())) {
                    String key = getKeyForCol(col, usesViewOrder);
                    if (key != null && props.get(key) != null) {
                        String[] mapping = ((String) props.get(key)).split("\t");
                        col.setMapToTbl(mapping[mapIdxOffset + 0]);
                        col.setMapToFld(mapping[mapIdxOffset + 1]);
                        if (mapping.length == 7 + mapIdxOffset) {
                            col.setFormXCoord(Integer.valueOf(mapping[mapIdxOffset + 2]));
                            col.setFormYCoord(Integer.valueOf(mapping[mapIdxOffset + 3]));
                            if (StringUtils.isNotBlank(mapping[mapIdxOffset + 4])) {
                                col.setCaption(mapping[mapIdxOffset + 4]);
                            }
                            col.setFrmFieldType(Integer.valueOf(mapping[mapIdxOffset + 5]));
                            col.setFrmMetaData(mapping[mapIdxOffset + 6]);
                        }
                    }
                }
            }
        }
    }
}

From source file:mj.ocraptor.extraction.tika.parser.microsoft.SummaryExtractor.java

License:Apache License

private void parse(DocumentSummaryInformation summary) {
    set(OfficeOpenXMLExtended.COMPANY, summary.getCompany());
    set(OfficeOpenXMLExtended.MANAGER, summary.getManager());
    set(TikaCoreProperties.LANGUAGE, getLanguage(summary));
    set(OfficeOpenXMLCore.CATEGORY, summary.getCategory());

    // New style counts
    set(Office.SLIDE_COUNT, summary.getSlideCount());
    if (summary.getSlideCount() > 0) {
        metadata.set(PagedText.N_PAGES, summary.getSlideCount());
    }/*from  www  .j a va2  s . co  m*/
    // Old style, Tika 1.0 counts
    // TODO Remove these in Tika 2.0
    set(Metadata.COMPANY, summary.getCompany());
    set(Metadata.MANAGER, summary.getManager());
    set(MSOffice.SLIDE_COUNT, summary.getSlideCount());
    set(Metadata.CATEGORY, summary.getCategory());

    parse(summary.getCustomProperties());
}

From source file:mj.ocraptor.extraction.tika.parser.microsoft.SummaryExtractor.java

License:Apache License

private String getLanguage(DocumentSummaryInformation summary) {
    CustomProperties customProperties = summary.getCustomProperties();
    if (customProperties != null) {
        Object value = customProperties.get("Language");
        if (value instanceof String) {
            return (String) value;
        }//from  w  w  w .j av a  2s .co  m
    }
    return null;
}

From source file:org.apache.tika.parser.microsoft.SummaryExtractor.java

License:Apache License

private void parse(DocumentSummaryInformation summary) {
    set(OfficeOpenXMLExtended.COMPANY, summary.getCompany());
    addMulti(metadata, OfficeOpenXMLExtended.MANAGER, summary.getManager());
    set(TikaCoreProperties.LANGUAGE, getLanguage(summary));
    set(OfficeOpenXMLCore.CATEGORY, summary.getCategory());

    // New style counts
    set(Office.SLIDE_COUNT, summary.getSlideCount());
    if (summary.getSlideCount() > 0) {
        metadata.set(PagedText.N_PAGES, summary.getSlideCount());
    }/*w  w w.  j  av a2 s .  com*/
    // Old style, Tika 1.0 counts
    // TODO Remove these in Tika 2.0
    set(Metadata.COMPANY, summary.getCompany());
    set(Metadata.MANAGER, summary.getManager());
    set(MSOffice.SLIDE_COUNT, summary.getSlideCount());
    set(Metadata.CATEGORY, summary.getCategory());

    parse(summary.getCustomProperties());
}

From source file:poi.hpsf.examples.ModifyDocumentSummaryInformation.java

License:Apache License

/**
 * <p>Main method - see class description.</p>
 *
 * @param args The command-line parameters.
 * @throws java.io.IOException//from   w  w w  .  ja v  a 2s. co  m
 * @throws MarkUnsupportedException
 * @throws NoPropertySetStreamException
 * @throws UnexpectedPropertySetTypeException
 * @throws WritingNotSupportedException
 */
public static void main(final String[] args) throws IOException, NoPropertySetStreamException,
        MarkUnsupportedException, UnexpectedPropertySetTypeException, WritingNotSupportedException {
    /* Read the name of the POI filesystem to modify from the command line.
     * For brevity to boundary check is performed on the command-line
     * arguments. */
    File poiFilesystem = new File(args[0]);

    /* Open the POI filesystem. */
    InputStream is = new FileInputStream(poiFilesystem);
    POIFSFileSystem poifs = new POIFSFileSystem(is);
    is.close();

    /* Read the summary information. */
    DirectoryEntry dir = poifs.getRoot();
    SummaryInformation si;
    try {
        DocumentEntry siEntry = (DocumentEntry) dir.getEntry(SummaryInformation.DEFAULT_STREAM_NAME);
        DocumentInputStream dis = new DocumentInputStream(siEntry);
        PropertySet ps = new PropertySet(dis);
        dis.close();
        si = new SummaryInformation(ps);
    } catch (FileNotFoundException ex) {
        /* There is no summary information yet. We have to create a new
         * one. */
        si = PropertySetFactory.newSummaryInformation();
    }

    /* Change the author to "Rainer Klute". Any former author value will
     * be lost. If there has been no author yet, it will be created. */
    si.setAuthor("Rainer Klute");
    System.out.println("Author changed to " + si.getAuthor() + ".");

    /* Handling the document summary information is analogous to handling
     * the summary information. An additional feature, however, are the
     * custom properties. */

    /* Read the document summary information. */
    DocumentSummaryInformation dsi;
    try {
        DocumentEntry dsiEntry = (DocumentEntry) dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME);
        DocumentInputStream dis = new DocumentInputStream(dsiEntry);
        PropertySet ps = new PropertySet(dis);
        dis.close();
        dsi = new DocumentSummaryInformation(ps);
    } catch (FileNotFoundException ex) {
        /* There is no document summary information yet. We have to create a
         * new one. */
        dsi = PropertySetFactory.newDocumentSummaryInformation();
    }

    /* Change the category to "POI example". Any former category value will
     * be lost. If there has been no category yet, it will be created. */
    dsi.setCategory("POI example");
    System.out.println("Category changed to " + dsi.getCategory() + ".");

    /* Read the custom properties. If there are no custom properties yet,
     * the application has to create a new CustomProperties object. It will
     * serve as a container for custom properties. */
    CustomProperties customProperties = dsi.getCustomProperties();
    if (customProperties == null)
        customProperties = new CustomProperties();

    /* Insert some custom properties into the container. */
    customProperties.put("Key 1", "Value 1");
    customProperties.put("Schl\u00fcssel 2", "Wert 2");
    customProperties.put("Sample Number", new Integer(12345));
    customProperties.put("Sample Boolean", Boolean.TRUE);
    customProperties.put("Sample Date", new Date());

    /* Read a custom property. */
    Object value = customProperties.get("Sample Number");

    /* Write the custom properties back to the document summary
     * information. */
    dsi.setCustomProperties(customProperties);

    /* Write the summary information and the document summary information
     * to the POI filesystem. */
    si.write(dir, SummaryInformation.DEFAULT_STREAM_NAME);
    dsi.write(dir, DocumentSummaryInformation.DEFAULT_STREAM_NAME);

    /* Write the POI filesystem back to the original file. Please note that
     * in production code you should never write directly to the origin
     * file! In case of a writing error everything would be lost. */
    OutputStream out = new FileOutputStream(poiFilesystem);
    poifs.writeFilesystem(out);
    out.close();
}