86 $this->dataSize = strlen($this->
data);
91 while ($this->pos < $this->dataSize) {
96 case self::DGGCONTAINER:
104 case self::BSTORECONTAINER:
124 case self::TERTIARYOPT:
128 case self::SPLITMENUCOLORS:
132 case self::DGCONTAINER:
140 case self::SPGRCONTAINER:
144 case self::SPCONTAINER:
156 case self::CLIENTTEXTBOX:
160 case self::CLIENTANCHOR:
164 case self::CLIENTDATA:
190 $recVer = (0x000F & $verInstance) >> 0;
193 $recordData = substr($this->
data, $this->pos + 8, $length);
196 $this->pos += 8 + $length;
205 $recordData = substr($this->
data, $this->pos + 8, $length);
208 $this->pos += 8 + $length;
212 $this->
object->setDggContainer($dggContainer);
213 $reader =
new self($dggContainer);
223 $recordData = substr($this->
data, $this->pos + 8, $length);
226 $this->pos += 8 + $length;
235 $recordData = substr($this->
data, $this->pos + 8, $length);
238 $this->pos += 8 + $length;
242 $this->
object->setBstoreContainer($bstoreContainer);
243 $reader =
new self($bstoreContainer);
258 $recordData = substr($this->
data, $this->pos + 8, $length);
261 $this->pos += 8 + $length;
265 $this->
object->addBSE($BSE);
267 $BSE->setBLIPType($recInstance);
270 $btWin32 = ord($recordData[0]);
273 $btMacOS = ord($recordData[1]);
276 $rgbUid = substr($recordData, 2, 16);
291 $unused1 = ord($recordData[32]);
294 $cbName = ord($recordData[33]);
297 $unused2 = ord($recordData[34]);
300 $unused3 = ord($recordData[35]);
303 $nameData = substr($recordData, 36, $cbName);
306 $blipData = substr($recordData, 36 + $cbName);
324 $recordData = substr($this->
data, $this->pos + 8, $length);
327 $this->pos += 8 + $length;
332 $rgbUid1 = substr($recordData, 0, 16);
336 if (in_array($recInstance, [0x046B, 0x06E3])) {
337 $rgbUid2 = substr($recordData, 16, 16);
346 $data = substr($recordData, $pos);
349 $blip->setData(
$data);
351 $this->
object->setBlip($blip);
365 $recordData = substr($this->
data, $this->pos + 8, $length);
368 $this->pos += 8 + $length;
373 $rgbUid1 = substr($recordData, 0, 16);
377 if ($recInstance == 0x06E1) {
378 $rgbUid2 = substr($recordData, 16, 16);
387 $data = substr($recordData, $pos);
390 $blip->setData(
$data);
392 $this->
object->setBlip($blip);
406 $recordData = substr($this->
data, $this->pos + 8, $length);
409 $this->pos += 8 + $length;
425 $recordData = substr($this->
data, $this->pos + 8, $length);
428 $this->pos += 8 + $length;
437 $recordData = substr($this->
data, $this->pos + 8, $length);
440 $this->pos += 8 + $length;
449 $recordData = substr($this->
data, $this->pos + 8, $length);
452 $this->pos += 8 + $length;
456 $this->
object->setDgContainer($dgContainer);
457 $reader =
new self($dgContainer);
458 $escher =
$reader->load($recordData);
467 $recordData = substr($this->
data, $this->pos + 8, $length);
470 $this->pos += 8 + $length;
481 $recordData = substr($this->
data, $this->pos + 8, $length);
484 $this->pos += 8 + $length;
491 $this->
object->setSpgrContainer($spgrContainer);
494 $this->
object->addChild($spgrContainer);
497 $reader =
new self($spgrContainer);
498 $escher =
$reader->load($recordData);
507 $recordData = substr($this->
data, $this->pos + 8, $length);
511 $this->
object->addChild($spContainer);
514 $this->pos += 8 + $length;
517 $reader =
new self($spContainer);
518 $escher =
$reader->load($recordData);
527 $recordData = substr($this->
data, $this->pos + 8, $length);
530 $this->pos += 8 + $length;
544 $recordData = substr($this->
data, $this->pos + 8, $length);
547 $this->pos += 8 + $length;
561 $recordData = substr($this->
data, $this->pos + 8, $length);
564 $this->pos += 8 + $length;
573 $recordData = substr($this->
data, $this->pos + 8, $length);
576 $this->pos += 8 + $length;
606 $this->
object->setStartOffsetX($startOffsetX);
609 $this->
object->setStartOffsetY($startOffsetY);
615 $this->
object->setEndOffsetX($endOffsetX);
618 $this->
object->setEndOffsetY($endOffsetY);
627 $recordData = substr($this->
data, $this->pos + 8, $length);
630 $this->pos += 8 + $length;
641 $splicedComplexData = substr(
$data, 6 *
$n);
646 $fopte = substr(
$data, 6 *
$i, 6);
652 $opidOpid = (0x3FFF & $opid) >> 0;
655 $opidFBid = (0x4000 & $opid) >> 14;
658 $opidFComplex = (0x8000 & $opid) >> 15;
664 $complexData = substr($splicedComplexData, 0, $op);
665 $splicedComplexData = substr($splicedComplexData, $op);
668 $value = $complexData;
674 $this->
object->setOPT($opidOpid, $value);
readDggContainer()
Read DggContainer record (Drawing Group Container).
readDg()
Read Dg record (Drawing).
load($data)
Load Escher stream data.
readClientAnchor()
Read ClientAnchor record.
readSplitMenuColors()
Read SplitMenuColors record.
static getInt4d($data, $pos)
Read 32-bit signed integer.
readSp()
Read Sp record (Shape).
readOfficeArtRGFOPTE($data, $n)
Read OfficeArtRGFOPTE table of property-value pairs.
readBstoreContainer()
Read BstoreContainer record (Blip Store Container).
__construct($object)
Create a new Escher instance.
readSpgrContainer()
Read SpgrContainer record (Shape Group Container).
static getUInt2d($data, $pos)
Read 16-bit unsigned integer.
readTertiaryOPT()
Read TertiaryOPT record.
readSpgr()
Read Spgr record (Shape Group).
readSpContainer()
Read SpContainer record (Shape Container).
readBlipPNG()
Read BlipPNG record.
readDgg()
Read Dgg record (Drawing Group).
readClientData()
Read ClientData record.
readClientTextbox()
Read ClientTextbox record.
readOPT()
Read OPT record.
static stringFromColumnIndex($columnIndex)
String from column index.
if(function_exists('posix_getuid') &&posix_getuid()===0) if(!array_key_exists('t', $options)) $tag
readDgContainer()
Read DgContainer record (Drawing Container).
readBSE()
Read BSE record.
readDefault()
Read a generic record.
readBlipJPEG()
Read BlipJPEG record.