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.

#### SecurityHandler

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

#### 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.

#### 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 save options

#### SecurityHandler.AlgorithmType

Algorithm types. New in PDFNet v3.1

#### SecurityHandler.Permission

permission types