Examples of DocumentEntry


Examples of org.apache.poi.poifs.filesystem.DocumentEntry

    // Sort out the hpsf properties
  super(directory, pfilesystem);
    readProperties();

    // read in the main stream.
    DocumentEntry documentProps = (DocumentEntry)
       directory.getEntry("WordDocument");
    _mainStream = new byte[documentProps.getSize()];

    directory.createDocumentInputStream("WordDocument").read(_mainStream);

    // Create our FIB, and check for the doc being encrypted
    _fib = new FileInformationBlock(_mainStream);
    _cpSplit = new CPSplitCalculator(_fib);
    if(_fib.isFEncrypted()) {
      throw new EncryptedDocumentException("Cannot process encrypted word files!");
    }

    // use the fib to determine the name of the table stream.
    String name = "0Table";
    if (_fib.isFWhichTblStm())
    {
      name = "1Table";
    }

    // Grab the table stream.
    DocumentEntry tableProps;
  try {
    tableProps =
      (DocumentEntry)directory.getEntry(name);
  } catch(FileNotFoundException fnfe) {
    throw new IllegalStateException("Table Stream '" + name + "' wasn't found - Either the document is corrupt, or is Word95 (or earlier)");
  }

    // read in the table stream.
    _tableStream = new byte[tableProps.getSize()];
    directory.createDocumentInputStream(name).read(_tableStream);

    _fib.fillVariableFields(_mainStream, _tableStream);

    // read in the data stream.
    try
    {
      DocumentEntry dataProps =
          (DocumentEntry)directory.getEntry("Data");
      _dataStream = new byte[dataProps.getSize()];
      filesystem.createDocumentInputStream("Data").read(_dataStream);
    }
    catch(java.io.FileNotFoundException e)
    {
        _dataStream = new byte[0];
View Full Code Here

Examples of org.apache.poi.poifs.filesystem.DocumentEntry

  public void testWriteNormal() throws Exception {
    // Get raw contents from a known file
    POIFSFileSystem fs = new POIFSFileSystem(
        new FileInputStream(normalFile)
    );
    DocumentEntry docProps = (DocumentEntry)fs.getRoot().getEntry("Current User");
    byte[] contents = new byte[docProps.getSize()];
    InputStream in = fs.getRoot().createDocumentInputStream("Current User");
    in.read(contents);

    // Now build up a new one
    CurrentUserAtom cu = new CurrentUserAtom();
View Full Code Here

Examples of org.apache.poi.poifs.filesystem.DocumentEntry

        byte[] oledata = readAll(record.getData());
        assertEquals(len, oledata.length);

        POIFSFileSystem fs = new POIFSFileSystem(record.getData());
        assertTrue("Constructed POIFS from ExOleObjStg data", true);
        DocumentEntry doc = (DocumentEntry)fs.getRoot().getEntry("Contents");
        assertNotNull(doc);
        assertTrue("Fetched the Contents stream containing OLE properties", true);
    }
View Full Code Here

Examples of org.apache.poi.poifs.filesystem.DocumentEntry

    chunkFactory = new ChunkFactory(11);

    FileInputStream fin = new FileInputStream(filename);
    filesystem = new POIFSFileSystem(fin);

    DocumentEntry docProps =
      (DocumentEntry)filesystem.getRoot().getEntry("VisioDocument");

    // Grab the document stream
    contents = new byte[docProps.getSize()];
    filesystem.createDocumentInputStream("VisioDocument").read(contents);
  }
View Full Code Here

Examples of org.apache.poi.poifs.filesystem.DocumentEntry

    chunkFactory = new ChunkFactory(11);

    FileInputStream fin = new FileInputStream(filename);
    POIFSFileSystem filesystem = new POIFSFileSystem(fin);

    DocumentEntry docProps =
      (DocumentEntry)filesystem.getRoot().getEntry("VisioDocument");

    // Grab the document stream
    contents = new byte[docProps.getSize()];
    filesystem.createDocumentInputStream("VisioDocument").read(contents);
  }
View Full Code Here

Examples of org.apache.poi.poifs.filesystem.DocumentEntry

            final File doc = docs[i];

            /* Read a test document <em>doc</em> into a POI filesystem. */
            final POIFSFileSystem poifs = new POIFSFileSystem(new FileInputStream(doc));
            final DirectoryEntry dir = poifs.getRoot();
            DocumentEntry dsiEntry = null;
            try
            {
                dsiEntry = (DocumentEntry) dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME);
            }
            catch (FileNotFoundException ex)
View Full Code Here

Examples of org.apache.poi.poifs.filesystem.DocumentEntry

        final File doc1 = new File(dataDir, POI_FS);
   
        /* Read a test document <em>doc1</em> into a POI filesystem. */
        POIFSFileSystem poifs = new POIFSFileSystem(new FileInputStream(doc1));
        DirectoryEntry dir = poifs.getRoot();
        DocumentEntry siEntry = (DocumentEntry) dir.getEntry(SummaryInformation.DEFAULT_STREAM_NAME);
        DocumentEntry dsiEntry = (DocumentEntry) dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME);
   
        /*
         * Read the summary information stream and the document summary
         * information stream from the POI filesystem.
         *
         * Please note that the result consists of SummaryInformation and
         * DocumentSummaryInformation instances which are in memory only. To
         * make them permanent they have to be written to a POI filesystem
         * explicitly (overwriting the former contents). Then the POI filesystem
         * should be saved to a file.
         */
        DocumentInputStream dis = new DocumentInputStream(siEntry);
        PropertySet ps = new PropertySet(dis);
        SummaryInformation si = new SummaryInformation(ps);
        dis = new DocumentInputStream(dsiEntry);
        ps = new PropertySet(dis);
        DocumentSummaryInformation dsi = new DocumentSummaryInformation(ps);
   
        /*
         * Write all properties supported by HPSF to the summary information
         * (e.g. author, edit date, application name) and to the document
         * summary information (e.g. company, manager).
         */
        Calendar cal = new GregorianCalendar();
        cal.set(2000, 6, 6, 6, 6, 6);
        final long time1 = cal.getTimeInMillis();
        cal.set(2001, 7, 7, 7, 7, 7);
        final long time2 = cal.getTimeInMillis();
        cal.set(2002, 8, 8, 8, 8, 8);
        final long time3 = cal.getTimeInMillis();
   
        int nr = 4711;
        final String P_APPLICATION_NAME = "ApplicationName";
        final String P_AUTHOR = "Author";
        final int    P_CHAR_COUNT = ++nr;
        final String P_COMMENTS = "Comments";
        final Date   P_CREATE_DATE_TIME = new Date(time1);
        final long   P_EDIT_TIME = ++nr * 1000 * 10;
        final String P_KEYWORDS = "Keywords";
        final String P_LAST_AUTHOR = "LastAuthor";
        final Date   P_LAST_PRINTED = new Date(time2);
        final Date   P_LAST_SAVE_DATE_TIME = new Date(time3);
        final int    P_PAGE_COUNT = ++nr;
        final String P_REV_NUMBER = "RevNumber";
        final int    P_SECURITY = 1;
        final String P_SUBJECT = "Subject";
        final String P_TEMPLATE = "Template";
        // FIXME (byte array properties not yet implemented): final byte[] P_THUMBNAIL = new byte[123];
        final String P_TITLE = "Title";
        final int    P_WORD_COUNT = ++nr;
   
        final int     P_BYTE_COUNT = ++nr;
        final String  P_CATEGORY = "Category";
        final String  P_COMPANY = "Company";
        // FIXME (byte array properties not yet implemented): final byte[]  P_DOCPARTS = new byte[123];
        // FIXME (byte array properties not yet implemented): final byte[]  P_HEADING_PAIR = new byte[123];
        final int     P_HIDDEN_COUNT = ++nr;
        final int     P_LINE_COUNT = ++nr;
        final boolean P_LINKS_DIRTY = true;
        final String  P_MANAGER = "Manager";
        final int     P_MM_CLIP_COUNT = ++nr;
        final int     P_NOTE_COUNT = ++nr;
        final int     P_PAR_COUNT = ++nr;
        final String  P_PRESENTATION_FORMAT = "PresentationFormat";
        final boolean P_SCALE = false;
        final int     P_SLIDE_COUNT = ++nr;
        final Date    now = new Date();

        final Integer POSITIVE_INTEGER = new Integer(2222);
        final Long POSITIVE_LONG = new  Long(3333);
        final Double POSITIVE_DOUBLE = new  Double(4444);
        final Integer NEGATIVE_INTEGER = new Integer(2222);
        final Long NEGATIVE_LONG = new  Long(3333);
        final Double NEGATIVE_DOUBLE = new  Double(4444);

        final Integer MAX_INTEGER = new Integer(Integer.MAX_VALUE);
        final Integer MIN_INTEGER = new Integer(Integer.MIN_VALUE);
        final Long MAX_LONG = new Long(Long.MAX_VALUE);
        final Long MIN_LONG = new Long(Long.MIN_VALUE);
        final Double MAX_DOUBLE = new Double(Double.MAX_VALUE);
        final Double MIN_DOUBLE = new Double(Double.MIN_VALUE);
       
        si.setApplicationName(P_APPLICATION_NAME);
        si.setAuthor(P_AUTHOR);
        si.setCharCount(P_CHAR_COUNT);
        si.setComments(P_COMMENTS);
        si.setCreateDateTime(P_CREATE_DATE_TIME);
        si.setEditTime(P_EDIT_TIME);
        si.setKeywords(P_KEYWORDS);
        si.setLastAuthor(P_LAST_AUTHOR);
        si.setLastPrinted(P_LAST_PRINTED);
        si.setLastSaveDateTime(P_LAST_SAVE_DATE_TIME);
        si.setPageCount(P_PAGE_COUNT);
        si.setRevNumber(P_REV_NUMBER);
        si.setSecurity(P_SECURITY);
        si.setSubject(P_SUBJECT);
        si.setTemplate(P_TEMPLATE);
        // FIXME (byte array properties not yet implemented): si.setThumbnail(P_THUMBNAIL);
        si.setTitle(P_TITLE);
        si.setWordCount(P_WORD_COUNT);
   
        dsi.setByteCount(P_BYTE_COUNT);
        dsi.setCategory(P_CATEGORY);
        dsi.setCompany(P_COMPANY);
        // FIXME (byte array properties not yet implemented): dsi.setDocparts(P_DOCPARTS);
        // FIXME (byte array properties not yet implemented): dsi.setHeadingPair(P_HEADING_PAIR);
        dsi.setHiddenCount(P_HIDDEN_COUNT);
        dsi.setLineCount(P_LINE_COUNT);
        dsi.setLinksDirty(P_LINKS_DIRTY);
        dsi.setManager(P_MANAGER);
        dsi.setMMClipCount(P_MM_CLIP_COUNT);
        dsi.setNoteCount(P_NOTE_COUNT);
        dsi.setParCount(P_PAR_COUNT);
        dsi.setPresentationFormat(P_PRESENTATION_FORMAT);
        dsi.setScale(P_SCALE);
        dsi.setSlideCount(P_SLIDE_COUNT);

        CustomProperties customProperties = dsi.getCustomProperties();
        if (customProperties == null)
            customProperties = new CustomProperties();
        customProperties.put("Schl\u00fcssel \u00e4",    "Wert \u00e4");
        customProperties.put("Schl\u00fcssel \u00e4\u00f6",   "Wert \u00e4\u00f6");
        customProperties.put("Schl\u00fcssel \u00e4\u00f6\u00fc""Wert \u00e4\u00f6\u00fc");
        customProperties.put("Schl\u00fcssel \u00e4\u00f6\u00fc\u00d6", "Wert \u00e4\u00f6\u00fc\u00d6");
        customProperties.put("positive_Integer", POSITIVE_INTEGER);
        customProperties.put("positive_Long", POSITIVE_LONG);
        customProperties.put("positive_Double", POSITIVE_DOUBLE);
        customProperties.put("negative_Integer", NEGATIVE_INTEGER);
        customProperties.put("negative_Long", NEGATIVE_LONG);
        customProperties.put("negative_Double", NEGATIVE_DOUBLE);
        customProperties.put("Boolean", new Boolean(true));
        customProperties.put("Date", now);
        customProperties.put("max_Integer", MAX_INTEGER);
        customProperties.put("min_Integer", MIN_INTEGER);
        customProperties.put("max_Long", MAX_LONG);
        customProperties.put("min_Long", MIN_LONG);
        customProperties.put("max_Double", MAX_DOUBLE);
        customProperties.put("min_Double", MIN_DOUBLE);
        dsi.setCustomProperties(customProperties);

        /* Write the summary information stream and the document summary
         * information stream to the POI filesystem. */
        si.write(dir, siEntry.getName());
        dsi.write(dir, dsiEntry.getName());

        /* Write the POI filesystem to a (temporary) file <em>doc2</em>
         * and close the latter. */
        final File doc2 = File.createTempFile("POI_HPSF_Test.", ".tmp");
        doc2.deleteOnExit();
        OutputStream out = new FileOutputStream(doc2);
        poifs.writeFilesystem(out);
        out.close();

        /*
         * Open <em>doc2</em> for reading and check summary information and
         * document summary information. All properties written before must be
         * found in the property streams of <em>doc2</em> and have the correct
         * values.
         */
        poifs = new POIFSFileSystem(new FileInputStream(doc2));
        dir = poifs.getRoot();
        siEntry = (DocumentEntry) dir.getEntry(SummaryInformation.DEFAULT_STREAM_NAME);
        dsiEntry = (DocumentEntry) dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME);
   
        dis = new DocumentInputStream(siEntry);
        ps = new PropertySet(dis);
        si = new SummaryInformation(ps);
        dis = new DocumentInputStream(dsiEntry);
        ps = new PropertySet(dis);
        dsi = new DocumentSummaryInformation(ps);
   
        assertEquals(P_APPLICATION_NAME, si.getApplicationName());
        assertEquals(P_AUTHOR, si.getAuthor());
        assertEquals(P_CHAR_COUNT, si.getCharCount());
        assertEquals(P_COMMENTS, si.getComments());
        assertEquals(P_CREATE_DATE_TIME, si.getCreateDateTime());
        assertEquals(P_EDIT_TIME, si.getEditTime());
        assertEquals(P_KEYWORDS, si.getKeywords());
        assertEquals(P_LAST_AUTHOR, si.getLastAuthor());
        assertEquals(P_LAST_PRINTED, si.getLastPrinted());
        assertEquals(P_LAST_SAVE_DATE_TIME, si.getLastSaveDateTime());
        assertEquals(P_PAGE_COUNT, si.getPageCount());
        assertEquals(P_REV_NUMBER, si.getRevNumber());
        assertEquals(P_SECURITY, si.getSecurity());
        assertEquals(P_SUBJECT, si.getSubject());
        assertEquals(P_TEMPLATE, si.getTemplate());
        // FIXME (byte array properties not yet implemented): assertEquals(P_THUMBNAIL, si.getThumbnail());
        assertEquals(P_TITLE, si.getTitle());
        assertEquals(P_WORD_COUNT, si.getWordCount());
   
        assertEquals(P_BYTE_COUNT, dsi.getByteCount());
        assertEquals(P_CATEGORY, dsi.getCategory());
        assertEquals(P_COMPANY, dsi.getCompany());
        // FIXME (byte array properties not yet implemented): assertEquals(P_, dsi.getDocparts());
        // FIXME (byte array properties not yet implemented): assertEquals(P_, dsi.getHeadingPair());
        assertEquals(P_HIDDEN_COUNT, dsi.getHiddenCount());
        assertEquals(P_LINE_COUNT, dsi.getLineCount());
        assertEquals(P_LINKS_DIRTY, dsi.getLinksDirty());
        assertEquals(P_MANAGER, dsi.getManager());
        assertEquals(P_MM_CLIP_COUNT, dsi.getMMClipCount());
        assertEquals(P_NOTE_COUNT, dsi.getNoteCount());
        assertEquals(P_PAR_COUNT, dsi.getParCount());
        assertEquals(P_PRESENTATION_FORMAT, dsi.getPresentationFormat());
        assertEquals(P_SCALE, dsi.getScale());
        assertEquals(P_SLIDE_COUNT, dsi.getSlideCount());

        final CustomProperties cps = dsi.getCustomProperties();
        assertEquals(customProperties, cps);
        assertNull(cps.get("No value available"));
        assertEquals("Wert \u00e4", cps.get("Schl\u00fcssel \u00e4"));
        assertEquals("Wert \u00e4\u00f6", cps.get("Schl\u00fcssel \u00e4\u00f6"));
        assertEquals("Wert \u00e4\u00f6\u00fc", cps.get("Schl\u00fcssel \u00e4\u00f6\u00fc"));
        assertEquals("Wert \u00e4\u00f6\u00fc\u00d6", cps.get("Schl\u00fcssel \u00e4\u00f6\u00fc\u00d6"));
        assertEquals(POSITIVE_INTEGER, cps.get("positive_Integer"));
        assertEquals(POSITIVE_LONG, cps.get("positive_Long"));
        assertEquals(POSITIVE_DOUBLE, cps.get("positive_Double"));
        assertEquals(NEGATIVE_INTEGER, cps.get("negative_Integer"));
        assertEquals(NEGATIVE_LONG, cps.get("negative_Long"));
        assertEquals(NEGATIVE_DOUBLE, cps.get("negative_Double"));
        assertEquals(new Boolean(true), cps.get("Boolean"));
        assertEquals(now, cps.get("Date"));
        assertEquals(MAX_INTEGER, cps.get("max_Integer"));
        assertEquals(MIN_INTEGER, cps.get("min_Integer"));
        assertEquals(MAX_LONG, cps.get("max_Long"));
        assertEquals(MIN_LONG, cps.get("min_Long"));
        assertEquals(MAX_DOUBLE, cps.get("max_Double"));
        assertEquals(MIN_DOUBLE, cps.get("min_Double"));

        /* Remove all properties supported by HPSF from the summary
         * information (e.g. author, edit date, application name) and from the
         * document summary information (e.g. company, manager). */
        si.removeApplicationName();
        si.removeAuthor();
        si.removeCharCount();
        si.removeComments();
        si.removeCreateDateTime();
        si.removeEditTime();
        si.removeKeywords();
        si.removeLastAuthor();
        si.removeLastPrinted();
        si.removeLastSaveDateTime();
        si.removePageCount();
        si.removeRevNumber();
        si.removeSecurity();
        si.removeSubject();
        si.removeTemplate();
        si.removeThumbnail();
        si.removeTitle();
        si.removeWordCount();
   
        dsi.removeByteCount();
        dsi.removeCategory();
        dsi.removeCompany();
        dsi.removeCustomProperties();
        dsi.removeDocparts();
        dsi.removeHeadingPair();
        dsi.removeHiddenCount();
        dsi.removeLineCount();
        dsi.removeLinksDirty();
        dsi.removeManager();
        dsi.removeMMClipCount();
        dsi.removeNoteCount();
        dsi.removeParCount();
        dsi.removePresentationFormat();
        dsi.removeScale();
        dsi.removeSlideCount();
   
        /*
         * <li><p>Write the summary information stream and the document summary
         * information stream to the POI filesystem. */
        si.write(dir, siEntry.getName());
        dsi.write(dir, dsiEntry.getName());
   
        /*
         * <li><p>Write the POI filesystem to a (temporary) file <em>doc3</em>
         * and close the latter. */
        final File doc3 = File.createTempFile("POI_HPSF_Test.", ".tmp");
View Full Code Here

Examples of org.apache.poi.poifs.filesystem.DocumentEntry

                    UnexpectedPropertySetTypeException
            {
                /* Read a test document <em>doc</em> into a POI filesystem. */
                final POIFSFileSystem poifs = new POIFSFileSystem(new FileInputStream(file));
                final DirectoryEntry dir = poifs.getRoot();
                DocumentEntry dsiEntry = null;
                try
                {
                    dsiEntry = (DocumentEntry) dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME);
                }
                catch (FileNotFoundException ex)
View Full Code Here

Examples of org.apache.poi.poifs.filesystem.DocumentEntry

    public HDFObjectFactory(InputStream istream) throws IOException
    {
        //do Ole stuff
        _filesystem = new POIFSFileSystem(istream);

        DocumentEntry headerProps =
            (DocumentEntry)_filesystem.getRoot().getEntry("WordDocument");

        _mainDocument = new byte[headerProps.getSize()];
        _filesystem.createDocumentInputStream("WordDocument").read(_mainDocument);

        _fib = new FileInformationBlock(_mainDocument);

        initTableStream();
View Full Code Here

Examples of org.apache.poi.poifs.filesystem.DocumentEntry

        List results = new ArrayList(1);

        //do Ole stuff
        POIFSFileSystem filesystem = new POIFSFileSystem(istream);

        DocumentEntry headerProps =
            (DocumentEntry)filesystem.getRoot().getEntry("WordDocument");

        byte[] mainDocument = new byte[headerProps.getSize()];
        filesystem.createDocumentInputStream("WordDocument").read(mainDocument);

        FileInformationBlock fib = new FileInformationBlock(mainDocument);

       // initTableStream();
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.