Show / Hide Table of Contents

# Namespace pdftron.SDF

### Classes

#### DictIterator

DictIterator is used to traverse key-value pairs in a dictionary. DictIterator can be used to print out all the entries in a given Obj dictionary as follows:

    DictIterator itr = dict.getDictIterator();
    while (itr.hasCurrent()) {
    Obj key = itr.key();
    printf(key.getName());
    Obj value = itr.value();
    //...
    itr.next()
    }
    }

#### DocSnapshot

Represents a state of the document.

#### NameTree

A NameTree is a common data structure in PDF. See section 3.8.5 'Name Trees' in PDF Reference Manual for more details.

A name tree serves a similar purpose to a dictionary - associating keys and values - but by different means. NameTrees allow efficient storage of very large association collections (string/Obj* maps). A NameTree can have many more entries than a SDF/Cos dictionary can.

NameTree-s use SDF/Cos-style strings (not null-terminated C strings), which may use Unicode encoding etc.

#### NameTreeIterator

NameTreeIterator is used to traverse key/value pairs in a NameTree.

#### NumberTreeIterator

NumberTreeIterator is used to traverse key/value pairs in a NumberTree.

#### Obj

Obj is a concrete class for all SDF/Cos objects. Obj hierarchy implements the composite design pattern. As a result, you can invoke a member function of any 'derived' object through Obj interface. If the member function is not supported (e.g. if you invoke Obj::GetNumber() on a boolean object) an Exception will be thrown.

You can use GetType() or obl.Is???() member functions to find out type-information at run time, however most of the time the type can be inferred from the PDF specification. Therefore when you call Doc::GetTrailer() you can assume that returned object is a dictionary. If there is any ambiguity use Is???() methods.

Objects can't be shared across documents, however you can use Doc::ImportObj() to copy objects from one document to another.

Objects can be shared within a document provided that they are created as indirect. Indirect objects are the ones that are referenced in cross-reference table. To create an object as indirect use Doc::CreateIndirect???() (where ? is the Object type).

#### ObjSet

ObjSet is a lightweight container that can hold a collection of SDF objects.

#### PDFTronCustomSecurityHandler

This class represents PDFTron Custom Security handler that applies PDFTron's custom encryption method on save.

#### ResultSnapshot

Represents a transition between two document states.

#### SDFDoc

SDFDoc is a low-level document representing a graph of SDF.Obj nodes that can be used to build higher-level document models such as PDF (Portable Document Format) or FDF (Forms Document Format).

SDF Doc brings together document security, document utility methods, and all SDF objects.

#### SecurityDescriptor

SecurityDescriptor is a class describing SecurityHandler

#### SecurityHandler

Standard Security Handler is a built-in password-based security handler.

#### SecurityManager

#### SecurityManagerSingleton

#### SignatureHandler

A base class for SignatureHandler. SignatureHandler instances are responsible for defining the digest and cipher algorithms to sign and/or verify a PDF document. SignatureHandlers are added to PDFDoc instances by calling the PDFDoc.AddSignatureHandler method.

#### StdSecurityHandler

Standard Security Handler is a built-in password-based security handler.

#### UndoManager

Undo-redo interface; one-to-one mapped to document

### Structs

#### SignatureHandlerId

Used for identifying a SignatureHandler instances as they are added to the PDFDoc's SignatureManager.

### Enums

#### Obj.ObjType

Obj types

#### SDFDoc.SaveOptions

SDFDoc sav options

#### SecurityHandler.Permission

permission types

#### StdSecurityHandler.AlgorithmType

Algorithm types. New in PDFNet v3.1

### Delegates

#### CreateDelegate