/** * Writes the page contents and definition to the writer. * * @param ObjectWriter $objectWriter * @param int $pageTreeId * @return int */ public function writePage(ObjectWriter $objectWriter, $pageTreeId) { $objectWriter->startObject($this->pageId); $objectWriter->startDictionary(); $objectWriter->writeName('Type'); $objectWriter->writeName('Page'); $objectWriter->writeName('Parent'); $objectWriter->writeIndirectReference($pageTreeId); $objectWriter->writeName('Resources'); $objectWriter->startDictionary(); $objectWriter->endDictionary(); $objectWriter->writeName('Contents'); $objectWriter->startArray(); $objectWriter->endArray(); foreach ($this->boxes as $name => $box) { $objectWriter->writeName($name); $box->writeRectangleArray($objectWriter); } if (null !== $this->rotation) { $objectWriter->writeName('Rotate'); $objectWriter->writeNumber($this->rotation); } $objectWriter->endDictionary(); $objectWriter->endObject(); return $this->pageId; }
public function testStartObjectWithObjectId() { $this->objectWriter->startObject(10); $this->assertSame("10 0 obj\n", $this->getFileObjectData()); }
/** * Creates a shadow mask from an image's alpha channel. * * @param ObjectWriter $objectWriter * @param Imagick $image * @param string $filter * @return int */ private function createShadowMask(ObjectWriter $objectWriter, Imagick $image, $filter) { $shadowMask = clone $image; $shadowMask->separateImageChannel(Imagick::CHANNEL_ALPHA); if ('FlateDecode' === $filter) { $image->setImageFormat('GRAY'); } $streamData = $shadowMask->getImageBlob(); $shadowMask->clear(); $id = $objectWriter->startObject(); $objectWriter->startDictionary(); $this->writeCommonDictionaryEntries($objectWriter, 'DeviceGray', strlen($streamData), $filter); $objectWriter->endDictionary(); $objectWriter->startStream(); $objectWriter->writeRaw($streamData); $objectWriter->endStream(); $objectWriter->endObject(); return $id; }