示例#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;
 }
示例#2
0
 /**
  * Writes the footer.
  *
  * @param int $xrefOffset
  */
 private function writeFooter($xrefOffset)
 {
     $this->objectWriter->ensureBlankLine();
     $this->objectWriter->writeRawLine('startxref');
     $this->objectWriter->writeRawLine((string) $xrefOffset);
     $this->objectWriter->writeRawLine("%%%EOF");
 }
示例#3
0
 /**
  * Writes the rectangle object to a writer.
  *
  * @param ObjectWriter $objectWriter
  * @internal
  */
 public function writeRectangleArray(ObjectWriter $objectWriter)
 {
     $objectWriter->startArray();
     $objectWriter->writeNumber($this->x1);
     $objectWriter->writeNumber($this->y1);
     $objectWriter->writeNumber($this->x2);
     $objectWriter->writeNumber($this->y2);
     $objectWriter->endArray();
 }
示例#4
0
 public function testWriteHexadecimalString()
 {
     $this->objectWriter->writeHexadecimalString('foo');
     $this->assertSame('<666f6f>', $this->getFileObjectData());
 }
示例#5
0
 /**
  * Writes common dictionary entries shared between actual images and their soft masks.
  *
  * @param ObjectWriter $objectWriter
  * @param string       $colorSpace
  * @param int          $length
  * @param string       $filter
  * @param int|null     $shadowMaskId
  */
 private function writeCommonDictionaryEntries(ObjectWriter $objectWriter, $colorSpace, $length, $filter)
 {
     $objectWriter->writeName('Type');
     $objectWriter->writeName('XObject');
     $objectWriter->writeName('Subtype');
     $objectWriter->writeName('Image');
     $objectWriter->writeName('Width');
     $objectWriter->writeNumber($this->width);
     $objectWriter->writeName('Height');
     $objectWriter->writeNumber($this->height);
     $objectWriter->writeName('ColorSpace');
     $objectWriter->writeName($colorSpace);
     $objectWriter->writeName('BitsPerComponent');
     $objectWriter->writeNumber(8);
     $objectWriter->writeName('Length');
     $objectWriter->writeNumber($length);
     $objectWriter->writeName('Filter');
     $objectWriter->writeName($filter);
 }
示例#6
0
 /**
  * Writes the info dictionary.
  *
  * @param ObjectWriter $objectWriter
  * @internal
  */
 public function writeInfoDictionary(ObjectWriter $objectWriter)
 {
     $objectWriter->startDictionary();
     foreach ($this->data as $key => $value) {
         $objectWriter->writeName($key);
         switch ($key) {
             case 'CreationDate':
             case 'ModDate':
                 $objectWriter->writeLiteralString(StringUtils::formatDateTime($value));
                 break;
             case 'Trapped':
                 $objectWriter->writeName($value);
                 break;
             default:
                 $objectWriter->writeLiteralString(StringUtils::encodeString($value));
         }
     }
     $objectWriter->endDictionary();
 }
示例#7
0
 /**
  * @iterations 10000
  */
 public function writeHexadecimalString()
 {
     $this->objectWriter->writeHexadecimalString('foo');
 }
 /**
  * {@inheritdoc}
  */
 public function writeEncryptDictionary(ObjectWriter $objectWriter)
 {
     $objectWriter->startDictionary();
     $objectWriter->writeName('Filter');
     $objectWriter->writeName('Standard');
     $objectWriter->writeName('V');
     $objectWriter->writeNumber($this->getAlgorithm());
     $objectWriter->writeName('R');
     $objectWriter->writeNumber($this->getRevision());
     $objectWriter->writeName('O');
     $objectWriter->writeNumber($this->ownerEntry);
     $objectWriter->writeName('U');
     $objectWriter->writeNumber($this->userEntry);
     $objectWriter->writeName('P');
     if (null === $this->userPermissions) {
         $objectWriter->writeNumber(0);
     } else {
         $objectWriter->writeNumber($this->userPermissions->toInt($this->getRevision()));
     }
     $this->writeAdditionalEncryptDictionaryEntries($objectWriter);
     $objectWriter->endDictionary();
 }