123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- /**
- * This file is part of FPDI
- *
- * @package Fpdi
- * @copyright Copyright (c) 2020 Setasign GmbH & Co. KG (https://www.setasign.com)
- * @license http://opensource.org/licenses/mit-license The MIT License
- */
- namespace Fpdi\PdfParser\Type;
- use Fpdi\PdfParser\PdfParser;
- use Fpdi\PdfParser\StreamReader;
- use Fpdi\PdfParser\Tokenizer;
- /**
- * Class representing an indirect object
- */
- class PdfIndirectObject extends PdfType
- {
- /**
- * Parses an indirect object from a tokenizer, parser and stream-reader.
- *
- * @param int $objectNumberToken
- * @param int $objectGenerationNumberToken
- * @param PdfParser $parser
- * @param Tokenizer $tokenizer
- * @param StreamReader $reader
- * @return bool|self
- * @throws PdfTypeException
- */
- public static function parse(
- $objectNumberToken,
- $objectGenerationNumberToken,
- PdfParser $parser,
- Tokenizer $tokenizer,
- StreamReader $reader
- ) {
- $value = $parser->readValue();
- if ($value === false) {
- return false;
- }
- $nextToken = $tokenizer->getNextToken();
- if ($nextToken === 'stream') {
- $value = PdfStream::parse($value, $reader, $parser);
- } elseif ($nextToken !== false) {
- $tokenizer->pushStack($nextToken);
- }
- $v = new self();
- $v->objectNumber = (int) $objectNumberToken;
- $v->generationNumber = (int) $objectGenerationNumberToken;
- $v->value = $value;
- return $v;
- }
- /**
- * Helper method to create an instance.
- *
- * @param int $objectNumber
- * @param int $generationNumber
- * @param PdfType $value
- * @return self
- */
- public static function create($objectNumber, $generationNumber, PdfType $value)
- {
- $v = new self();
- $v->objectNumber = (int) $objectNumber;
- $v->generationNumber = (int) $generationNumber;
- $v->value = $value;
- return $v;
- }
- /**
- * Ensures that the passed value is a PdfIndirectObject instance.
- *
- * @param mixed $indirectObject
- * @return self
- * @throws PdfTypeException
- */
- public static function ensure($indirectObject)
- {
- return PdfType::ensureType(self::class, $indirectObject, 'Indirect object expected.');
- }
- /**
- * The object number.
- *
- * @var int
- */
- public $objectNumber;
- /**
- * The generation number.
- *
- * @var int
- */
- public $generationNumber;
- }
|