List of usage examples for org.apache.poi.hpsf DocumentSummaryInformation getCustomProperties
public CustomProperties getCustomProperties()
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(); }