PDFDict Class Documentation

classPDFDict : PDFObject

Namespace:datalogics_interface

Inherits from:
PDFObject

Detailed Description

All objects in a PDF document are built from a collection of simpler objects that represent fundamental datatypes like numbers, strings and arrays. PDFObject and its subclasses allow direct access and manipulation of these simple objects. Some subclasses represent single data elements, such as PDFInteger, which represents a single integer value. Other subclasses represent a collection of PDFObjects, like PDFArray, an indexed array of data elements.

A PDFDict is a heterogenous collection object that maps other PDFObjects (including other PDFDicts) to PDFName objects.

Constructor & Destructor Documentation

PDFDict

PDFDict(Document &doc, boolindirect)

Parameters

doc: Document &

Document object containing this PDFDict

indirect: bool

flag marking this as an indirect PDFObject

General constructor

Member Function Documentation

contains

boolcontains(const std::string &key)

Parameters

key: const std::string &

A PDFName for the key

Returns:

true if the given key exists

Tests whether the given key exists in the dictionary

get

std::unique_ptr< PDFObject >get(const std::string &key)

Parameters

key: const std::string &

A PDFName for the key

Returns:

A PDFObject matching the key

Returns the object matching the given key.

get_generation

intget_generation()

Returns:

The generation number of this indirect object.

Only indirect objects have a generation number.

get_id

intget_id()

Returns:

The ID number of this indirect object.

Only indirect objects have an ID number.

get_indirect

boolget_indirect()

Returns:

true if this object is indirect, false if it is direct.

Indicates if this object is indirect or direct.

get_keys

std::vector< std::string >get_keys()

Returns:

a list of all the keys

Enumerate all keys in this dictionary. Order is undefined; successive calls on the same dictionary are not guaranteed to return keys in the same order. Get a list of all keys in the dictionary

get_type

PDFObjectTypeget_type()

Returns:

PDFObjectType

The underlying Cos type of this object. Prefer this over dynamic_cast/try_as chains in hot paths.

operator==

booloperator==(const PDFObject &other)

Parameters

other: const PDFObject &

The other PDFObject to compare against.

Returns:

true if the two objects are equal, false otherwise.

Compare if two objects are equal.

put

voidput(const std::string &key, PDFObject &value)

Parameters

key: const std::string &

A PDFName for the key

value: PDFObject &

A PDFObject to add to the dictionary

Returns:

void

Puts an object with the matching key into the dictionary, adding the entry if the key is not already present.

remove

voidremove(const std::string &key)

Parameters

key: const std::string &

A PDFName for the key

Returns:

void

Removes a key/object pair from the dictionary.

to_string

std::stringto_string()

Returns:

A string describing this PDFObject.

The string includes the object's indirect status, and if indirect, its ID and generation number.

try_as

T *try_as(typename T)

Parameters

: typename T

Returns:

T *

Attempt to downcast this object to a derived Cos type such as PDFString, PDFDict, PDFArray, PDFStream, PDFName, PDFInteger, PDFReal, or PDFBoolean. Returns nullptr if the object's actual type doesn't match T.

try_as

const T *try_as(typename T)

Parameters

: typename T

Returns:

const T *

Const overload of try_as(). Returns a const pointer, or nullptr.