/** * 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; }
/** * 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"); }
/** * 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(); }
public function testWriteHexadecimalString() { $this->objectWriter->writeHexadecimalString('foo'); $this->assertSame('<666f6f>', $this->getFileObjectData()); }
/** * 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); }
/** * 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(); }
/** * @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(); }