SetaPDF_Core_Document_Catalog_Pages Class for handling PDF pages

File: /SetaPDF v2/Core/Document/Catalog/Pages.php

Class hierarchy

Implements

Summary

Properties

$_annotationCache

Caches annotation object identifiers to page numbers

$_currentPagesObject

The current pages object while walking through the page tree

$_pageCount

The page count

$_pageObjects

An array holding the native indirect objects of pages

$_pageObjectsToPageNumbers

A helper array matching objects to page numbers

$_pages

An array holding page instances


Methods

__construct()

_ensureAllPageObjects()

Method to extract page objects recursively.

Parameters
$node : SetaPDF_Core_Type_IndirectObjectInterface
 
Exceptions

Throws SetaPDF_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 : integer
 
Exceptions

Throws SetaPDF_Core_Exception

_ensurePageObject()

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

Parameters
$pageNumber : integer
 
Exceptions

Throws InvalidArgumentException

Throws SetaPDF_Core_Type_Exception

Throws SetaPDF_Core_Exception

_ensurePagesArray()

_readPage()

protected SetaPDF_Core_Document_Catalog_Pages::_readPage (
integer $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 : integer

The original page number - 1

Exceptions

Throws SetaPDF_Core_Exception

_readPageBackwards()

protected SetaPDF_Core_Document_Catalog_Pages::_readPageBackwards (
integer $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 : integer
 
Exceptions

Throws SetaPDF_Core_Exception

cleanUp()

Release memory / cycled references.

count()

Returns the page count of the document.

Exceptions

Throws SetaPDF_Core_Type_Exception

Throws SetaPDF_Core_SecHandler_Exception

See

create()

public SetaPDF_Core_Document_Catalog_Pages::create (
string|array $format [, string $orientation = SetaPDF_Core_PageFormats::ORIENTATION_PORTRAIT [, boolean $append = true ]]
): SetaPDF_Core_Document_Page

Create a page.

Parameters
$format : string|array

The page format. See constants in SetaPDF_Core_PageFormats and the getFormat() method.

$orientation : string

The orientation. See constants in SetaPDF_Core_PageFormats.

$append : boolean

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

Exceptions

Throws SetaPDF_Core_Exception

deletePage()

public SetaPDF_Core_Document_Catalog_Pages::deletePage (
integer $pageNumber
): void

Deletes a page.

Parameters
$pageNumber : integer
 
Exceptions

Throws SetaPDF_Core_SecHandler_Exception

Throws SetaPDF_Core_Type_IndirectReference_Exception

Throws SetaPDF_Core_Type_Exception

Throws SetaPDF_Core_Exception

ensureAllPageObjects()

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 SetaPDF_Core_Exception

extract()

public SetaPDF_Core_Document_Catalog_Pages::extract (
integer $pageNumber, SetaPDF_Core_Document $document [, boolean $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 : integer
 
$document : SetaPDF_Core_Document
 
$returnPageInstance : boolean
 
Exceptions

Throws SetaPDF_Core_Type_Exception

Throws SetaPDF_Core_Exception

getDocument()

Get the document instance.

getPage()

Get a page.

Parameters
$pageNumber : integer
 
Exceptions

Throws SetaPDF_Core_Type_Exception

Throws SetaPDF_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 SetaPDF_Core_Type_Exception

Throws SetaPDF_Core_Document_ObjectNotDefinedException

Throws SetaPDF_Core_Document_ObjectNotFoundException

Throws SetaPDF_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 SetaPDF_Core_Type_Exception

Throws SetaPDF_Core_Document_ObjectNotDefinedException

Throws SetaPDF_Core_Document_ObjectNotFoundException

Throws SetaPDF_Core_Exception

getPagesIndirectObject()

Get a pages indirect object.

Parameters
$pageNumber : integer
 
Exceptions

Throws SetaPDF_Core_Type_Exception

Throws SetaPDF_Core_Exception

resolvePagesRootObject()

Resolves the root page tree node.

Parameters
$create : boolean
 
Exceptions

Throws SetaPDF_Core_Type_Exception

Throws SetaPDF_Core_SecHandler_Exception