Exemple #1
0
 /**
  * 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;
 }
Exemple #2
0
 public function testStartObjectWithObjectId()
 {
     $this->objectWriter->startObject(10);
     $this->assertSame("10 0 obj\n", $this->getFileObjectData());
 }
Exemple #3
0
 /**
  * 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;
 }