Documentation

AbstractCompiler
in package
implements CompilerInterface

AbstractYes

Abstract Pdf compiler class

Tags
category

Pop

author

Nick Sagona, III nick@popphp.org

copyright

Copyright (c) 2009-2026 Nick Sagona, III

license

https://www.popphp.org/license New BSD License

version
6.0.0

Table of Contents

Interfaces

CompilerInterface
Compiler interface

Properties

$byteLength  : int|null
PDF byte length
$compression  : bool
Compression property
$document  : Document|null
Document object
$fontReferences  : array<string|int, mixed>
Font references
$fonts  : array<string|int, mixed>
Fonts array
$info  : InfoObject|null
Info object
$lastIndex  : int
Highest object index currently stored in $objects. Maintained incrementally (via addObject()) so that lastIndex() is O(1) instead of re-scanning/sorting the entire, ever-growing $objects array.
$objects  : array<string|int, mixed>
Objects array
$output  : string|null
PDF document output buffer
$pages  : array<string|int, mixed>
Pages array
$parent  : ParentObject|null
Parent object
$root  : RootObject|null
Root object
$trailer  : string|null
PDF document trailer

Methods

finalize()  : void
Compile and finalize the PDF document
getDocument()  : Document|null
Get the document object
getFontReferences()  : array<string|int, mixed>
Get the font references
getFonts()  : array<string|int, mixed>
Get the fonts
getInfo()  : InfoObject|null
Get the info object
getObjects()  : array<string|int, mixed>
Get the compiled objects
getOutput()  : string
Get the compiled output
getParent()  : ParentObject|null
Get the parent object
getRoot()  : RootObject|null
Get the root object
lastIndex()  : int
Return the last object index.
prepareFonts()  : void
Prepare the font objects
setDocument()  : Compiler
Set the document object
addObject()  : AbstractCompiler
Add an object to the objects array, keeping the cached last index (returned by lastIndex()) in sync. Objects are not guaranteed to be added in strictly ascending index order (e.g. imported/merged objects), so the cached index is updated via a running max rather than a blind increment.
calculateByteLength()  : int
Calculate byte length
formatByteLength()  : string
Format byte length
getCoordinates()  : array<string|int, mixed>
Get coordinates based on document origin
prepareAnnotations()  : void
Prepare the annotation objects
prepareImages()  : void
Prepare the image objects
preparePaths()  : void
Prepare the path objects
prepareText()  : void
Prepare the text objects
setInfo()  : AbstractCompiler
Set the info object
setParent()  : AbstractCompiler
Set the parent object
setRoot()  : AbstractCompiler
Set the root object

Properties

$fontReferences

Font references

protected array<string|int, mixed> $fontReferences = []

$lastIndex

Highest object index currently stored in $objects. Maintained incrementally (via addObject()) so that lastIndex() is O(1) instead of re-scanning/sorting the entire, ever-growing $objects array.

protected int $lastIndex = 0

$output

PDF document output buffer

protected string|null $output = null

Methods

finalize()

Compile and finalize the PDF document

public abstract finalize([Document|null $document = null ]) : void
Parameters
$document : Document|null = null

getFontReferences()

Get the font references

public getFontReferences() : array<string|int, mixed>
Return values
array<string|int, mixed>

getFonts()

Get the fonts

public getFonts() : array<string|int, mixed>
Return values
array<string|int, mixed>

getObjects()

Get the compiled objects

public getObjects() : array<string|int, mixed>
Return values
array<string|int, mixed>

getOutput()

Get the compiled output

public getOutput() : string
Return values
string

lastIndex()

Return the last object index.

public lastIndex() : int
Return values
int

prepareFonts()

Prepare the font objects

public abstract prepareFonts() : void

addObject()

Add an object to the objects array, keeping the cached last index (returned by lastIndex()) in sync. Objects are not guaranteed to be added in strictly ascending index order (e.g. imported/merged objects), so the cached index is updated via a running max rather than a blind increment.

protected addObject(int|string|null $index, ObjectInterface $object) : AbstractCompiler
Parameters
$index : int|string|null
$object : ObjectInterface
Return values
AbstractCompiler

calculateByteLength()

Calculate byte length

protected calculateByteLength(Stringable|string|null $string) : int
Parameters
$string : Stringable|string|null
Return values
int

formatByteLength()

Format byte length

protected formatByteLength(int|string $num) : string
Parameters
$num : int|string
Return values
string

getCoordinates()

Get coordinates based on document origin

protected getCoordinates(int|float $x, int|float $y, PageObject $pageObject) : array<string|int, mixed>
Parameters
$x : int|float
$y : int|float
$pageObject : PageObject
Return values
array<string|int, mixed>

prepareAnnotations()

Prepare the annotation objects

protected abstract prepareAnnotations(array<string|int, mixed> $annotations, PageObject $pageObject) : void
Parameters
$annotations : array<string|int, mixed>
$pageObject : PageObject

prepareImages()

Prepare the image objects

protected abstract prepareImages(array<string|int, mixed> $images, PageObject $pageObject) : void
Parameters
$images : array<string|int, mixed>
$pageObject : PageObject

preparePaths()

Prepare the path objects

protected abstract preparePaths(array<string|int, mixed> $paths, PageObject $pageObject) : void
Parameters
$paths : array<string|int, mixed>
$pageObject : PageObject

prepareText()

Prepare the text objects

protected abstract prepareText(array<string|int, mixed> $text, PageObject $pageObject) : void
Parameters
$text : array<string|int, mixed>
$pageObject : PageObject

        
On this page

Search results