Package org.apache.poi.ddf

Examples of org.apache.poi.ddf.DefaultEscherRecordFactory


    fillEscherRecords(data, offset, size);
  }

  private void fillEscherRecords(byte[] data, int offset, int size)
  {
    EscherRecordFactory recordFactory = new DefaultEscherRecordFactory();
    int pos = offset;
    while ( pos < offset + size)
    {
      EscherRecord r = recordFactory.createRecord(data, pos);
      escherRecords.add(r);
      int bytesRead = r.fillFields(data, pos, recordFactory);
      pos += bytesRead + 1; // There is an empty byte between each top-level record in a Word doc
    }
  }
View Full Code Here


   */
  public EscherPart(DirectoryNode baseDir, String[] parts) throws IOException {
    super(baseDir, parts);

    // Now create our Escher children
    DefaultEscherRecordFactory erf =
      new DefaultEscherRecordFactory();

    ArrayList<EscherRecord> ec = new ArrayList<EscherRecord>();
    int left = data.length;
    while(left > 0) {
      EscherRecord er = erf.createRecord(data, 0);
      er.fillFields(data, 0, erf);
      left -= er.getRecordSize();

      ec.add(er);
    }
View Full Code Here

            _stPicName = LittleEndian.getByteArray( dataStream, offset,
                    _cchPicName );
            offset += _cchPicName;
        }

        final DefaultEscherRecordFactory escherRecordFactory = new DefaultEscherRecordFactory();
        _shape = new EscherContainerRecord();
        int recordSize = _shape.fillFields( dataStream, offset,
                escherRecordFactory );
        offset += recordSize;

        _blipRecords = new LinkedList<EscherRecord>();
        while ( ( offset - startOffset ) < _picf.getLcb() )
        {
            EscherRecord nextRecord = escherRecordFactory.createRecord(
                    dataStream, offset );
            if ( nextRecord.getRecordId() != (short) 0xF007
                    && ( nextRecord.getRecordId() < (short) 0xF018 || nextRecord
                            .getRecordId() > (short) 0xF117 ) )
                break;
View Full Code Here

    System.out.println(ind + " Type is " + r.getRecordType() + " (" + hexType + " -> " + rHexType + " )");
    System.out.println(ind + " Len is " + (len-8) + " (" + makeHex((len-8),8) + "), on disk len is " + len );

    // print additional information for drawings and atoms
    if (optEscher && cname.equals("PPDrawing")) {
      DefaultEscherRecordFactory factory = new DefaultEscherRecordFactory();

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      r.writeOut(baos);
      byte[] b = baos.toByteArray();

      EscherRecord er = factory.createRecord(b, 0);
      er.fillFields(b, 0, factory);

      System.out.println( printEscherRecord( er ) );

    } else if(optVerbose && r.getChildRecords() == null) {
View Full Code Here

                {
                    try
                    {
                        // Blip stored in delay stream, which in a word doc, is
                        // the main stream
                        EscherRecordFactory recordFactory = new DefaultEscherRecordFactory();
                        EscherRecord record = recordFactory.createRecord(
                                _mainStream, bse.getOffset() );

                        if ( record instanceof EscherBlipRecord )
                        {
                            record.fillFields( _mainStream, bse.getOffset(),
View Full Code Here

            {
                /*
                 * Blip stored in delay stream, which in a word doc, is the main
                 * stream
                 */
                EscherRecordFactory recordFactory = new DefaultEscherRecordFactory();
                EscherRecord record = recordFactory.createRecord( _mainStream,
                        bseRecord.getOffset() );

                if ( record instanceof EscherBlipRecord )
                {
                    record.fillFields( _mainStream, bseRecord.getOffset(),
View Full Code Here

    dumpEscherStm(escherDir);
    dumpEscherDelayStm(escherDir);
  }
  private void dumpEscherStream(byte[] data) {
    DefaultEscherRecordFactory erf =
      new DefaultEscherRecordFactory();

    // Dump
    int left = data.length;
    while(left > 0) {
      EscherRecord er = erf.createRecord(data, 0);
      er.fillFields(data, 0, erf);
      left -= er.getRecordSize();

      System.out.println(er.toString());
    }
View Full Code Here

                  pictures.add(new Picture(blip.getPicturedata()));
              }
              else if (bse.getOffset() > 0)
              {
                  // Blip stored in delay stream, which in a word doc, is the main stream
                  EscherRecordFactory recordFactory = new DefaultEscherRecordFactory();
                  EscherRecord record = recordFactory.createRecord(_mainStream, bse.getOffset());

                  if (record instanceof EscherBlipRecord) {
                      record.fillFields(_mainStream, bse.getOffset(), recordFactory);
                      blip = (EscherBlipRecord) record;
                      pictures.add(new Picture(blip.getPicturedata()));
View Full Code Here

    System.out.println(ind + " Type is " + r.getRecordType() + " (" + hexType + " -> " + rHexType + " )");
    System.out.println(ind + " Len is " + (len-8) + " (" + makeHex((len-8),8) + "), on disk len is " + len );

    // print additional information for drawings and atoms
    if (optEscher && cname.equals("PPDrawing")) {
      DefaultEscherRecordFactory factory = new DefaultEscherRecordFactory();

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      r.writeOut(baos);
      byte[] b = baos.toByteArray();

      EscherRecord er = factory.createRecord(b, 0);
      er.fillFields(b, 0, factory);
     
      System.out.println( printEscherRecord( er ) );
           
    } else if(optVerbose && r.getChildRecords() == null) {
View Full Code Here

    public static EscherAggregate createAggregate( List records, int locFirstDrawingRecord, DrawingManager2 drawingManager )
    {
        // Keep track of any shape records created so we can match them back to the object id's.
        // Textbox objects are also treated as shape objects.
        final List shapeRecords = new ArrayList();
        EscherRecordFactory recordFactory = new DefaultEscherRecordFactory()
        {
            public EscherRecord createRecord( byte[] data, int offset )
            {
                EscherRecord r = super.createRecord( data, offset );
                if ( r.getRecordId() == EscherClientDataRecord.RECORD_ID || r.getRecordId() == EscherTextboxRecord.RECORD_ID )
                {
                    shapeRecords.add( r );
                }
                return r;
            }
        };

        // Calculate the size of the buffer
        EscherAggregate agg = new EscherAggregate(drawingManager);
        int loc = locFirstDrawingRecord;
        int dataSize = 0;
        while ( loc + 1 < records.size()
                && sid( records, loc ) == DrawingRecord.sid
                && isObjectRecord( records, loc + 1 ) )
        {
            dataSize += ( (DrawingRecord) records.get( loc ) ).getData().length;
            loc += 2;
        }

        // Create one big buffer
        byte buffer[] = new byte[dataSize];
        int offset = 0;
        loc = locFirstDrawingRecord;
        while ( loc + 1 < records.size()
                && sid( records, loc ) == DrawingRecord.sid
                && isObjectRecord( records, loc + 1 ) )
        {
            DrawingRecord drawingRecord = (DrawingRecord) records.get( loc );
            System.arraycopy( drawingRecord.getData(), 0, buffer, offset, drawingRecord.getData().length );
            offset += drawingRecord.getData().length;
            loc += 2;
        }

        // Decode the shapes
        //        agg.escherRecords = new ArrayList();
        int pos = 0;
        while ( pos < dataSize )
        {
            EscherRecord r = recordFactory.createRecord( buffer, pos );
            int bytesRead = r.fillFields( buffer, pos, recordFactory );
            agg.addEscherRecord( r );
            pos += bytesRead;
        }
View Full Code Here

TOP

Related Classes of org.apache.poi.ddf.DefaultEscherRecordFactory

Copyright © 2018 www.massapicom. 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.