![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/vendor/setasign/fpdi/src/PdfParser/CrossReference/ |
<?php /** * This file is part of FPDI * * @package setasign\Fpdi * @copyright Copyright (c) 2023 Setasign GmbH & Co. KG (https://www.setasign.com) * @license http://opensource.org/licenses/mit-license The MIT License */ namespace setasign\Fpdi\PdfParser\CrossReference; use setasign\Fpdi\PdfParser\PdfParser; use setasign\Fpdi\PdfParser\Type\PdfDictionary; use setasign\Fpdi\PdfParser\Type\PdfToken; use setasign\Fpdi\PdfParser\Type\PdfTypeException; /** * Abstract class for cross-reference reader classes. */ abstract class AbstractReader { /** * @var PdfParser */ protected $parser; /** * @var PdfDictionary */ protected $trailer; /** * AbstractReader constructor. * * @param PdfParser $parser * @throws CrossReferenceException * @throws PdfTypeException */ public function __construct(PdfParser $parser) { $this->parser = $parser; $this->readTrailer(); } /** * Get the trailer dictionary. * * @return PdfDictionary */ public function getTrailer() { return $this->trailer; } /** * Read the trailer dictionary. * * @throws CrossReferenceException * @throws PdfTypeException */ protected function readTrailer() { try { $trailerKeyword = $this->parser->readValue(null, PdfToken::class); if ($trailerKeyword->value !== 'trailer') { throw new CrossReferenceException( \sprintf( 'Unexpected end of cross reference. "trailer"-keyword expected, got: %s.', $trailerKeyword->value ), CrossReferenceException::UNEXPECTED_END ); } } catch (PdfTypeException $e) { throw new CrossReferenceException( 'Unexpected end of cross reference. "trailer"-keyword expected, got an invalid object type.', CrossReferenceException::UNEXPECTED_END, $e ); } try { $trailer = $this->parser->readValue(null, PdfDictionary::class); } catch (PdfTypeException $e) { throw new CrossReferenceException( 'Unexpected end of cross reference. Trailer not found.', CrossReferenceException::UNEXPECTED_END, $e ); } $this->trailer = $trailer; } }