setasign\SetaPDF2\Core\Document\Catalog

Pages Class for handling PDF pages

File: /SetaPDF v2/Core/Document/Catalog/Pages.php
Old class name (alias): \SetaPDF_Core_Document_Catalog_Pages

Class hierarchy

Implements

Summary

Properties

$_annotationCache

protected array Pages::$_annotationCache = array()

Caches annotation object identifiers to page numbers

$_catalog

The catalog instance

$_currentPagesObject

The current pages object while walking through the page tree

$_pageCount

protected int Pages::$_pageCount = 0

The page count

$_pageObjects

protected array Pages::$_pageObjects = array()

An array holding the native indirect objects of pages

$_pageObjectsToPageNumbers

protected array Pages::$_pageObjectsToPageNumbers = array()

A helper array matching objects to page numbers

$_pages

An array holding page instances

$_pagesRootObject

The pages root object


Methods

__construct()

The constructor.

Parameters
$catalog : \SetaPDF_Core_Document_Catalog
 

_ensureAllPageObjects()

Method to extract page objects recursively.

Parameters
$node : \SetaPDF_Core_Type_IndirectObjectInterface
 
Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

_ensureIndirectObjectAndDictionaryAndType()

This method checks an entry in a Kids array for valid values and repairs it (if possible).

Parameters
$kids : \SetaPDF_Core_Type_Array
 
$offset : int
 
Exceptions

Throws \setasign\SetaPDF2\Core\Exception

_ensurePageObject()

Ensures that a page object is read and available in the $_pageObjects property.

Parameters
$pageNumber : int
 
Exceptions

Throws \InvalidArgumentException

Throws \setasign\SetaPDF2\Core\Type\Exception

Throws \setasign\SetaPDF2\Core\Exception

_readPage()

protected Pages::_readPage (
int $pageNumber
): void

Resolves a page object by walking forwards through the page tree.

This method is optimized, to take the fastest way through the page tree, beginning at the pages root node. The page tree will be walked forward.

Parameters
$pageNumber : int

The original page number - 1

Exceptions

Throws \setasign\SetaPDF2\Core\Exception

_readPageBackwards()

protected Pages::_readPageBackwards (
int $pageNumber
): void

Resolves a page object by walking backwards through the page tree.

This method is optimized to take the fastest way through the page tree, beginning at the pages root node. The page tree will be walked forward.

Parameters
$pageNumber : int
 
Exceptions

Throws \setasign\SetaPDF2\Core\Exception

cleanUp()

public Pages::cleanUp (
void
): void

Release memory / cycled references.

count()

public Pages::count (
void
): int

Returns the page count of the document.

Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

Throws \setasign\SetaPDF2\Core\SecHandler\Exception

See

create()

public Pages::create (
string|array $format,
string $orientation = \setasign\SetaPDF2\Core\PageFormats::ORIENTATION_PORTRAIT,
bool $append = true
): \SetaPDF_Core_Document_Page

Create a page.

Parameters
$format : string|array

The page format. See constants in \setasign\SetaPDF2\Core\PageFormats and the getFormat() method.

$orientation : string

The orientation. See constants in \setasign\SetaPDF2\Core\PageFormats.

$append : bool

Whether the page should be appended to the page tree or not.

Exceptions

Throws \setasign\SetaPDF2\Core\Exception

deletePage()

ensureAllPageObjects()

public Pages::ensureAllPageObjects (
void
): void

This method makes sure that all pages are read.

It walks the complete page tree to cache/get all page objects in one iteration. This method should be used if all pages of a document should be handled. It is much faster than using the random access.

Exceptions

Throws \BadMethodCallException

Throws \setasign\SetaPDF2\Core\Exception

extract()

public Pages::extract (
int $pageNumber,
\SetaPDF_Core_Document $document,
bool $returnPageInstance = true
): \SetaPDF_Core_Document_Page|\SetaPDF_Core_Type_IndirectObject

Extracts a page and prepares it for the usage in another document.

This method is needed if a page should be extracted independently. For example the original document should be modified after extraction and the page itself will be edited in the new document (inherited attributes get flattened).

Parameters
$pageNumber : int
 
$document : \SetaPDF_Core_Document
 
$returnPageInstance : bool
 
Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

Throws \setasign\SetaPDF2\Core\Exception

getDocument()

Get the document instance.

getLastPage()

getPage()

public Pages::getPage (
int $pageNumber
): \SetaPDF_Core_Document_Page

Get a page.

Parameters
$pageNumber : int
 
Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

Throws \setasign\SetaPDF2\Core\Exception

getPageNumberByIndirectObject()

Get the page number by a page indirect object.

If the object is not found in the page tree, false is returned.

Parameters
$indirectObject : \SetaPDF_Core_Type_IndirectObjectInterface
 
Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

Throws \setasign\SetaPDF2\Core\Document\ObjectNotDefinedException

Throws \setasign\SetaPDF2\Core\Document\ObjectNotFoundException

Throws \setasign\SetaPDF2\Core\Exception

getPageNumberByPageObject()

Get the page number by a page object.

If the object is not found in the page tree, false is returned.

Parameters
$page : \SetaPDF_Core_Document_Page
 
Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

Throws \setasign\SetaPDF2\Core\Document\ObjectNotDefinedException

Throws \setasign\SetaPDF2\Core\Document\ObjectNotFoundException

Throws \setasign\SetaPDF2\Core\Exception

getPagesIndirectObject()

Get a pages indirect object.

Parameters
$pageNumber : int
 
Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

Throws \setasign\SetaPDF2\Core\Exception

resolvePagesRootObject()

Resolves the root page tree node.

Parameters
$create : bool
 
Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

Throws \setasign\SetaPDF2\Core\SecHandler\Exception