generated from jric11/baseProject
176 lines
4.6 KiB
PHP
176 lines
4.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* XrefHarness.php
|
|
*
|
|
* @since 2011-05-23
|
|
* @category Library
|
|
* @package Pdfparser
|
|
* @author Nicola Asuni <info@tecnick.com>
|
|
* @copyright 2011-2026 Nicola Asuni - Tecnick.com LTD
|
|
* @license https://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE)
|
|
* @link https://github.com/tecnickcom/tc-lib-pdf-parser
|
|
*
|
|
* This file is part of tc-lib-pdf-parser software library.
|
|
*/
|
|
|
|
namespace Test;
|
|
|
|
use Com\Tecnick\Pdf\Parser\Process\Xref;
|
|
|
|
/**
|
|
* @phpstan-import-type RawObjectArray from \Com\Tecnick\Pdf\Parser\Process\RawObject
|
|
*/
|
|
class XrefHarness extends Xref
|
|
{
|
|
/** @var array<int, RawObjectArray> */
|
|
private array $stubIndirectObject = [];
|
|
|
|
/** @var RawObjectArray|null */
|
|
private ?array $stubRawObject = null;
|
|
|
|
public function setPdfDataPublic(string $pdfdata): void
|
|
{
|
|
$this->pdfdata = $pdfdata;
|
|
}
|
|
|
|
/**
|
|
* @param array<int, RawObjectArray> $indirectObject
|
|
*/
|
|
public function setStubIndirectObject(array $indirectObject): void
|
|
{
|
|
$this->stubIndirectObject = $indirectObject;
|
|
}
|
|
|
|
/**
|
|
* @param RawObjectArray $rawObject
|
|
*/
|
|
public function setStubRawObject(array $rawObject): void
|
|
{
|
|
$this->stubRawObject = $rawObject;
|
|
}
|
|
|
|
/**
|
|
* @param array{
|
|
* 'trailer'?: array{
|
|
* 'encrypt'?: string,
|
|
* 'id': array<int, string>,
|
|
* 'info': string,
|
|
* 'root': string,
|
|
* 'size': int,
|
|
* },
|
|
* 'xref'?: array<string, int|string>,
|
|
* } $xref
|
|
*
|
|
* @return array{
|
|
* 'trailer': array{
|
|
* 'encrypt'?: string,
|
|
* 'id': array<int, string>,
|
|
* 'info': string,
|
|
* 'root': string,
|
|
* 'size': int,
|
|
* },
|
|
* 'xref': array<string, int|string>,
|
|
* }
|
|
*
|
|
* @throws \Com\Tecnick\Pdf\Parser\Exception
|
|
*/
|
|
public function getXrefDataPublic(int $offset = 0, array $xref = []): array
|
|
{
|
|
return $this->getXrefData($offset, $xref);
|
|
}
|
|
|
|
/**
|
|
* @param array{
|
|
* 'trailer'?: array{
|
|
* 'encrypt'?: string,
|
|
* 'id': array<int, string>,
|
|
* 'info': string,
|
|
* 'root': string,
|
|
* 'size': int,
|
|
* },
|
|
* 'xref': array<string, int|string>,
|
|
* } $xref
|
|
*
|
|
* @return array{
|
|
* 'trailer': array{
|
|
* 'encrypt'?: string,
|
|
* 'id': array<int, string>,
|
|
* 'info': string,
|
|
* 'root': string,
|
|
* 'size': int,
|
|
* },
|
|
* 'xref': array<string, int|string>,
|
|
* }
|
|
*
|
|
* @throws \Com\Tecnick\Pdf\Parser\Exception
|
|
*/
|
|
public function decodeXrefPublic(int $startxref, array $xref): array
|
|
{
|
|
return $this->decodeXref($startxref, $xref);
|
|
}
|
|
|
|
/**
|
|
* @param array{
|
|
* 'trailer'?: array{
|
|
* 'encrypt'?: string,
|
|
* 'id': array<int, string>,
|
|
* 'info': string,
|
|
* 'root': string,
|
|
* 'size': int,
|
|
* },
|
|
* 'xref': array<string, int|string>,
|
|
* } $xref
|
|
*
|
|
* @return array{
|
|
* 'trailer': array{
|
|
* 'encrypt'?: string,
|
|
* 'id': array<int, string>,
|
|
* 'info': string,
|
|
* 'root': string,
|
|
* 'size': int,
|
|
* },
|
|
* 'xref': array<string, int|string>,
|
|
* }
|
|
*
|
|
* @throws \Com\Tecnick\Pdf\Parser\Exception
|
|
*/
|
|
public function decodeXrefStreamPublic(int $startxref, array $xref): array
|
|
{
|
|
return $this->decodeXrefStream($startxref, $xref);
|
|
}
|
|
|
|
/**
|
|
* @param array<int, array<int, int>> $sdata
|
|
* @param array<int, array<int, int>> $ddata
|
|
* @param array<int, int> $wbt
|
|
*/
|
|
public function processDdataPublic(array &$sdata, array $ddata, array $wbt): void
|
|
{
|
|
$this->processDdata($sdata, $ddata, $wbt);
|
|
}
|
|
|
|
/**
|
|
* @return array<int, RawObjectArray>
|
|
*/
|
|
protected function getIndirectObject(string $obj_ref, int $offset = 0, bool $decoding = true): array
|
|
{
|
|
$unused = [$obj_ref, $offset, $decoding];
|
|
unset($unused);
|
|
|
|
return $this->stubIndirectObject;
|
|
}
|
|
|
|
/**
|
|
* @return RawObjectArray
|
|
*/
|
|
protected function getRawObject(int $offset = 0): array
|
|
{
|
|
if ($this->stubRawObject !== null) {
|
|
return $this->stubRawObject;
|
|
}
|
|
|
|
return parent::getRawObject($offset);
|
|
}
|
|
}
|