pdftron::PDF::PDFDoc Class Reference

PDFDoc is a high-level class describing a single PDF (Portable Document Format) document. More...

#include <PDFDoc.h>

List of all members.

Public Member Functions

 PDFDoc ()
 Default constructor.
 PDFDoc (SDF::SDFDoc &sdfdoc)
 Create a PDF document from an existing SDF/Cos document.
 PDFDoc (const UString &filepath)
 Open an existing PDF document.
 PDFDoc (const char *filepath)
 PDFDoc (Filters::Filter stream)
 Open an existing PDF document.
 PDFDoc (const char *buf, size_t buf_size)
 Open a SDF/Cos document from a memory buffer.
 ~PDFDoc ()
 Destructor.
bool IsEncrypted ()
bool InitSecurityHandler (void *custom_data=0)
 Initializes document's SecurityHandler.
bool InitStdSecurityHandler (const char *password, int password_sz=0)
 Initializes document's SecurityHandler using the supplied password.
SDF::SecurityHandler GetSecurityHandler ()
void SetSecurityHandler (SDF::SecurityHandler handler)
 The function sets a new SecurityHandler as the current security handler.
void RemoveSecurity ()
 This function removes document security.
PDFDocInfo GetDocInfo ()
PDFDocViewPrefs GetViewPrefs ()
bool IsModified () const
 Call this function to determine whether the document has been modified since it was last saved.
bool IsLinearized () const
 Call this function to determine whether the document is represented in linearized (fast web view) format.
void Save (const UString &path, UInt32 flags, Common::ProgressMonitor *progress)
 Saves the document to a file.
void Save (const char *&out_buf, size_t &out_buf_size, UInt32 flags, Common::ProgressMonitor *progress)
 Saves the document to a memory buffer.
PageIterator GetPageIterator (UInt32 page_number=1)
Page GetPage (UInt32 page_number)
void PageRemove (const PageIterator &page_itr)
void PageInsert (PageIterator &where, Page page)
 Insert/Import a single page at a specific location in the page sequence.
void PagePushFront (Page page)
 Adds a page to the beginning of a document's page sequence.
void PagePushBack (Page page)
 Adds a page to the end of a document's page sequence.
std::vector< PageImportPages (const std::vector< Page > &pages, bool import_bookmarks=false)
 The function imports a list of pages to this document.
Page PageCreate (const Rect &media_box=Rect(0, 0, 612, 792))
 Create a new, empty page in the document.
class Bookmark GetFirstBookmark ()
void AddRootBookmark (class Bookmark root_bookmark)
 Adds/links the specified Bookmark to the root level of document’s outline tree.
SDF::Obj GetTrailer ()
SDF::Obj GetRoot ()
SDF::Obj GetPages ()
int GetPageCount ()
FieldIterator GetFieldIterator ()
 An interactive form (sometimes referred to as an AcroForm) is a collection of fields for gathering information interactively from the user.
FieldIterator GetFieldIterator (const UString &field_name)
Field GetField (const UString &field_name)
 field_name - a string representing the fully qualified name of the field (e.g.
Field FieldCreate (const UString &field_name, Field::Type type, SDF::Obj field_value=0, SDF::Obj def_field_value=0)
 Create a new interactive form Field.
Field FieldCreate (const UString &field_name, Field::Type type, const UString &field_value, const UString &def_field_value)
void RefreshFieldAppearances ()
 Regenerates the appearance stream for every widget annotation in the document Call this method if you modified field's value and would like to update field's appearances.
void FlattenFields ()
 Flatten all form fields in the document.
SDF::Obj GetAcroForm ()
FDF::FDFDoc FDFExtract ()
void FDFMerge (FDF::FDFDoc &fdf_doc)
 Import form data from FDF file to PDF interactive form.
Action GetOpenAction ()
void SetOpenAction (const Action &action)
 Sets the Action that will be triggered when the document is opened.
void AddFileAttachment (const char *file_key, FileSpec embedded_file)
 Associates a file attachment with the document.
PageLabel GetPageLabel (int page_num)
void SetPageLabel (int page_num, PageLabel &label)
 Attaches a label to a page.
void RemovePageLabel (int page_num)
 Removes the page label that is attached to the specified page, effectively merging the specified range with the previous page label sequence.
bool IsTagged ()
Struct::STree GetStructTree ()
bool HasOC () const
SDF::Obj GetOCGs () const
OCG::Config GetOCGConfig () const
void AddHighlights (const UString &hilite)
 AddHighlights is used to highlight text in a document using 'Adobe's Highlight File Format' (Technical Note #5172 ).
SDF::Obj CreateIndirectName (const char *name)
 The following list of methods is used to create SDF/Cos indirect objects.
SDF::Obj CreateIndirectArray ()
SDF::Obj CreateIndirectBool (bool value)
SDF::Obj CreateIndirectDict ()
SDF::Obj CreateIndirectNull ()
SDF::Obj CreateIndirectNumber (double value)
SDF::Obj CreateIndirectString (const UChar *value, UInt32 size)
SDF::Obj CreateIndirectString (const UString &str)
SDF::Obj CreateIndirectStream (Filters::FilterReader &data, Filters::Filter filter_chain=Filters::Filter(0, false))
SDF::Obj CreateIndirectStream (const char *data, const size_t data_size, Filters::Filter filter_chain=Filters::Filter(0, false))
SDF::SDFDocGetSDFDoc ()
 operator SDF::SDFDoc & ()
 Explicit conversion operator from PDFDoc to SDF::Doc.
void Lock ()
 Locks the document to prevent competing threads from accessing the document at the same time.
void Unlock ()
 Removes the lock from the document.
bool IsLocked ()
bool TryLock (int milliseconds=0)
 Try locking the document, waiting no longer than specified number of milliseconds.
UString GetFileName () const


Detailed Description

PDFDoc is a high-level class describing a single PDF (Portable Document Format) document.

Most applications using PDFNet will use this class to open existing PDF documents, or to create new PDF documents from scratch.

The class offers a number of entry points into the document. For example,

The class also offers utility methods to slit and merge PDF pages, to create new pages, to flatten forms, to change security settings, etc.


Constructor & Destructor Documentation

pdftron::PDF::PDFDoc::PDFDoc (  ) 

Default constructor.

Creates an empty new document.

pdftron::PDF::PDFDoc::PDFDoc ( SDF::SDFDoc sdfdoc  ) 

Create a PDF document from an existing SDF/Cos document.

Parameters:
sdfdoc a pointer to the SDF document. Created PDFDoc will take the ownership of the low-level document.
Note:
the SDFDoc will become invalid. If you would like to access the low level document use GetSDFDoc

pdftron::PDF::PDFDoc::PDFDoc ( const UString filepath  ) 

Open an existing PDF document.

Parameters:
filepath - pathname to the file.
Note:
Make sure to call InitSecurityHandler() after PDFDoc(...) in case a document is encrypted

pdftron::PDF::PDFDoc::PDFDoc ( const char *  filepath  ) 

pdftron::PDF::PDFDoc::PDFDoc ( Filters::Filter  stream  ) 

Open an existing PDF document.

Parameters:
stream - input stream containing a serialized document. The input stream may be a random-access file, memory buffer, slow HTTP connection etc.
Note:
if the input stream doesn't support Seek() operation the document will load whole data stream in memory before parsing. In case of linearized PDF, the document may be parsed on-the-fly while it is being loaded in memory. Note that since StdFile implements Seek() interface, the document does not have to be fully in memory before it is used.

Make sure to call InitSecurityHandler() after PDFDoc(...) for encrypted documents.

pdftron::PDF::PDFDoc::PDFDoc ( const char *  buf,
size_t  buf_size 
)

Open a SDF/Cos document from a memory buffer.

Note:
the document should be fully loaded in the memory buffer.

the buffer ownership is not transfered to the document so the user should clean-up any allocated memory if necessary.

Parameters:
buf - a memory buffer containing the serialized document
buf_size - the size of memory buffer.

pdftron::PDF::PDFDoc::~PDFDoc (  ) 

Destructor.


Member Function Documentation

bool pdftron::PDF::PDFDoc::IsEncrypted (  ) 

Returns:
true if the document is/was originally encrypted false otherwise.

bool pdftron::PDF::PDFDoc::InitSecurityHandler ( void *  custom_data = 0  ) 

Initializes document's SecurityHandler.

This version of InitSecurityHandler() works with Standard and Custom PDF security and can be used in situations where the password is obtained dynamically via user feedback. See EncTest sample for example code.

This function should be called immediately after an encrypted document is opened. The function does not have any side effects on documents that are not encrypted.

If the security handler was successfully initialized it can be later obtained using GetSecurityHandler() method.

Exceptions:
An exception is thrown if the matching handler for document's security was not found in the global SecurityManager. In this case, you need to register additional custom security handlers with the global SecurityManager (using SecurityManagerSingleton).
Returns:
true if the SecurityHandler was successfully initialized (this may include authentication data collection, verification etc.), false otherwise.
Parameters:
custom_data An optional parameter used to specify custom data that should be passed in SecurityHandler::Initialize() callback.

bool pdftron::PDF::PDFDoc::InitStdSecurityHandler ( const char *  password,
int  password_sz = 0 
)

Initializes document's SecurityHandler using the supplied password.

This version of InitSecurityHandler() assumes that document uses Standard security and that a password is specified directly.

This function should be called immediately after an encrypted document is opened. The function does not have any side effects on documents that are not encrypted.

If the security handler was successfully initialized, it can be later obtained using GetSecurityHandler() method.

Returns:
true if the given password successfully unlocked the document, false otherwise.
Exceptions:
An exception is thrown if the document's security Filter is not 'Standard'. In this case, you need to register additional custom security handlers with the global SecurityManager (SecurityManagerSingleton).
Parameters:
password Specifies the password used to open the document without any user feedback. If you would like to dynamically obtain the password, you need to derive a custom class from StdSecurityHandler() and use InitSecurityHandler() without any parameters. See EncTest sample for example code.
password_len An optional parameter used to specify the size of the password buffer, in bytes. If the 'password_sz' is 0, or if the parameter is not specified, the function assumes that the string is null terminated.

SDF::SecurityHandler pdftron::PDF::PDFDoc::GetSecurityHandler (  ) 

Returns:
Currently selected SecurityHandler.
Note:
InitSecurityHandler() should be called before GetSecurityHandler() in order to initialize the handler.

Returned security handler can be modified in order to change the security settings of the existing document. Changes to the current handler will not invalidate the access to the original file and will take effect during document Save().

If the security handler is modified, document will perform a full save even if e_incremental was given as a flag in Save() method.

void pdftron::PDF::PDFDoc::SetSecurityHandler ( SDF::SecurityHandler  handler  ) 

The function sets a new SecurityHandler as the current security handler.

Parameters:
- new SecurityHandler
Note:
Setting a new security handler will not invalidate the access to the original file and will take effect during document Save().

If the security handler is modified, document will perform a full save even if e_incremental was given as a flag in Save() method.

void pdftron::PDF::PDFDoc::RemoveSecurity (  ) 

This function removes document security.

PDFDocInfo pdftron::PDF::PDFDoc::GetDocInfo (  ) 

Returns:
The class representing document information metadata. (i.e. entries in the document information dictionary).

PDFDocViewPrefs pdftron::PDF::PDFDoc::GetViewPrefs (  ) 

Returns:
Viewer preferences for this document.
PDFDocViewPrefs is a high-level utility class that can be used to control the way the document is to be presented on the screen or in print.

bool pdftron::PDF::PDFDoc::IsModified (  )  const

Call this function to determine whether the document has been modified since it was last saved.

Returns:
- true if document was modified, false otherwise

bool pdftron::PDF::PDFDoc::IsLinearized (  )  const

Call this function to determine whether the document is represented in linearized (fast web view) format.

Returns:
- true if document is stored in fast web view format, false otherwise.
Note:
any changes to the document can invalidate linearization. The function will return 'true' only if the original document is linearized and if it is not modified.
In order to provide good performance over relatively slow communication links, PDFNet can generate PDF documents with linearized objects and hint tables that can allow a PDF viewer application to download and view one page of a PDF file at a time, rather than requiring the entire file (including fonts and images) to be downloaded before any of it can be viewed.

To save a document in linearized (fast web view) format you only need to pass 'Doc.SaveOptions.e_linearized' flag in the Save method.

void pdftron::PDF::PDFDoc::Save ( const UString path,
UInt32  flags,
Common::ProgressMonitor *  progress 
)

Saves the document to a file.

If a full save is requested to the original path, the file is saved to a file system-determined temporary file, the old file is deleted, and the temporary file is renamed to path.

A full save with remove unused or linearization option may re-arrange object in the cross reference table. Therefore all pointers and references to document objects and resources should be re acquired in order to continue document editing.

In order to use incremental save the specified path must match original path and e_incremental flag bit should be set.

Parameters:
path - The full path name to which the file is saved.
flags - A bit field composed of an OR of Doc::SaveOptions values.
progress - A pointer to the progress interface. NULL if progress tracking is not required.
Exceptions:
- if the file can't be opened for saving or if there is a problem during Save an Exception object will be thrown.

void pdftron::PDF::PDFDoc::Save ( const char *&  out_buf,
size_t &  out_buf_size,
UInt32  flags,
Common::ProgressMonitor *  progress 
)

Saves the document to a memory buffer.

Parameters:
out_buf a pointer to the buffer containing the serialized version of the document. (C++ Note) The buffer is owned by a document and the client doesn't need to do any initialization or cleanup.
out_buf_size the size of the serialized document (i.e. out_buf) in bytes.
flags - A bit field composed of an OR of Doc::SaveOptions values. Note that this method ignores e_incremental flag.
progress - A pointer to the progress interface. NULL if progress tracking is not required.
Exceptions:
- if there is a problem during Save an Exception object will be thrown.

PageIterator pdftron::PDF::PDFDoc::GetPageIterator ( UInt32  page_number = 1  ) 

Returns:
an iterator to the first page in the document. Use the Next() method on the returned iterator to traverse all pages in the document. For example:
   PageIterator itr = pdfdoc.GetPageIterator();
   while (itr.HasNext()) { //  Read every page
      Page page = itr.Current();
      // ...
      itr.Next()
   }
For full sample code, please take a look at ElementReader, PDFPageTest and PDFDraw sample projects.

Page pdftron::PDF::PDFDoc::GetPage ( UInt32  page_number  ) 

Parameters:
page_number - the page number in document's page sequence. Page numbers in document's page sequence are indexed from 1.
Returns:
a Page corresponding to a given page number, or null (invalid page) if the document does not contain the given page number.
For example:
   Page page = pdfdoc.GetPage(page_num);
   if (page == null) return; //  Page not found

void pdftron::PDF::PDFDoc::PageRemove ( const PageIterator page_itr  ) 

Parameters:
page_itr - the PageIterator to the page that should be removed A PageIterator for the given page can be obtained using PDFDoc::Find(page_num) or using direct iteration through document's page sequence.

void pdftron::PDF::PDFDoc::PageInsert ( PageIterator where,
Page  page 
)

Insert/Import a single page at a specific location in the page sequence.

Parameters:
where - The location in the page sequence indicating where to insert the page. The page is inserted before the specified location.
page - A page to insert.
Note:
Invalidates all PageIterators pointing to the document.

void pdftron::PDF::PDFDoc::PagePushFront ( Page  page  ) 

Adds a page to the beginning of a document's page sequence.

Parameters:
page - a page to prepend to the document Invalidates all PageIterators pointing to the document.

void pdftron::PDF::PDFDoc::PagePushBack ( Page  page  ) 

Adds a page to the end of a document's page sequence.

Parameters:
page - a page to append to the document
Note:
Invalidates all PageIterators pointing to the document.

std::vector<Page> pdftron::PDF::PDFDoc::ImportPages ( const std::vector< Page > &  pages,
bool  import_bookmarks = false 
)

The function imports a list of pages to this document.

Although a list of pages can be imported using repeated calls to PageInsert(), PageImport will not import duplicate copies of resources that are shared across pages (such as fonts, images, colorspaces etc). Therefore this method is recommended when a page import list consists of several pages that share the same resources.

Parameters:
pages A list of pages to import. All pages should belong to the same source document.
import_bookmarks An optional flag specifying whether any bookmark items pointing to pages in the import list should be merged with the target (i.e. this) document.
Returns:
a list of imported pages. Note that imported pages are not placed in the document page sequence. This can be done using methods such as PageInsert(), PagePushBack(), etc.

Page pdftron::PDF::PDFDoc::PageCreate ( const Rect media_box = Rect(0, 0, 612, 792)  ) 

Create a new, empty page in the document.

You can use PageWriter to fill the page with new content. Finally the page should be inserted at specific place within document page sequence using PageInsert/PagePushFront/PagePushBack methods.

Returns:
A new, empty page.
Note:
the new page still does not belong to document page sequence and should be subsequently placed at a specific location within the sequence.
Parameters:
media_box A rectangle, expressed in default user space units, defining the boundaries of the physical medium on which the page is intended to be displayed or printed. A user space units is 1/72 of an inch. If media_box is not specified the default dimensions of the page are 8.5 x 11 inches (or 8.5*72, 11*72 units).

The following is a listing of some standard U.S. page sizes:

  • Letter = Rect(0, 0, 612, 792)
  • Legal = Rect(0, 0, 612, 1008)
  • Ledger = Rect(0, 0, 1224, 792)
  • Tabloid = Rect(0, 0, 792, 1224)
  • Executive = Rect(0, 0, 522, 756)

The following is a listing of ISO standard page sizes:

  • 4A0 = Rect(0, 0, 4768, 6741)
  • 2A0 = Rect(0, 0, 3370, 4768)
  • A0 = Rect(0, 0, 2384, 3370)
  • A1 = Rect(0, 0, 1684, 2384)
  • A2 = Rect(0, 0, 1191, 1684)
  • A3 = Rect(0, 0, 842, 1191)
  • A4 = Rect(0, 0, 595, 842)
  • A5 = Rect(0, 0, 420, 595)
  • A6 = Rect(0, 0, 298, 420)
  • A7 = Rect(0, 0, 210, 298)
  • A8 = Rect(0, 0, 147, 210)
  • A9 = Rect(0, 0, 105, 147)
  • A10 = Rect(0, 0, 74, 105)
  • B0 = Rect(0, 0, 2835, 4008)
  • B1 = Rect(0, 0, 2004, 2835)
  • B2 = Rect(0, 0, 1417, 2004)
  • B3 = Rect(0, 0, 1001, 1417)
  • B4 = Rect(0, 0, 709, 1001)
  • B5 = Rect(0, 0, 499, 709)
  • B6 = Rect(0, 0, 354, 499)
  • B7 = Rect(0, 0, 249, 354)
  • B8 = Rect(0, 0, 176, 249)
  • B9 = Rect(0, 0, 125, 176)
  • B10 = Rect(0, 0, 88, 125)
  • C0 = Rect(0, 0, 2599, 3677)
  • C1 = Rect(0, 0, 1837, 2599)
  • C2 = Rect(0, 0, 1298, 1837)
  • C3 = Rect(0, 0, 918, 1298)
  • C4 = Rect(0, 0, 649, 918)
  • C5 = Rect(0, 0, 459, 649)
  • C6 = Rect(0, 0, 323, 459)
  • C7 = Rect(0, 0, 230, 323)
  • C8 = Rect(0, 0, 162, 230)
  • C9 = Rect(0, 0, 113, 162)
  • C10 = Rect(0, 0, 79, 113)

class Bookmark pdftron::PDF::PDFDoc::GetFirstBookmark (  ) 

Returns:
- the first Bookmark from the document’s outline tree. If the Bookmark tree is empty the underlying SDF/Cos Object is null and returned Bookmark is not valid (i.e. Bookmark::IsValid() returns false).

void pdftron::PDF::PDFDoc::AddRootBookmark ( class Bookmark  root_bookmark  ) 

Adds/links the specified Bookmark to the root level of document’s outline tree.

Note:
parameter 'root_bookmark' must not be linked (must not be belong) to a bookmark tree.

SDF::Obj pdftron::PDF::PDFDoc::GetTrailer (  ) 

Returns:
- A dictionary representing the Cos root of the document (document's trailer)

SDF::Obj pdftron::PDF::PDFDoc::GetRoot (  ) 

Returns:
- A dictionary representing the Cos root of the document (/Root entry within the trailer dictionary)

SDF::Obj pdftron::PDF::PDFDoc::GetPages (  ) 

Returns:
- A dictionary representing the root of the low level page-tree

int pdftron::PDF::PDFDoc::GetPageCount (  ) 

Returns:
the number of pages in the document.

FieldIterator pdftron::PDF::PDFDoc::GetFieldIterator (  ) 

An interactive form (sometimes referred to as an AcroForm) is a collection of fields for gathering information interactively from the user.

A PDF document may contain any number of fields appearing on any combination of pages, all of which make up a single, global interactive form spanning the entire document.

The following methods are used to access and manipulate Interactive form fields (sometimes referred to as AcroForms).

Returns:
an iterator to the first Field in the document.
The list of all Fields present in the document can be traversed as follows:
 FieldIterator itr = pdfdoc.GetFieldIterator();
 for(; itr.HasNext(); itr.Next()) {
   Field field = itr.Current();
   Console.WriteLine("Field name: {0}", field.GetName());
  }

For a full sample, please refer to 'InteractiveForms' sample project.

FieldIterator pdftron::PDF::PDFDoc::GetFieldIterator ( const UString field_name  ) 

Field pdftron::PDF::PDFDoc::GetField ( const UString field_name  ) 

field_name - a string representing the fully qualified name of the field (e.g.

"employee.name.first").

Returns:
a FieldIterator referring to an interactive Field or to invalid field if the field name was not found. If a given field name was not found itr.HasNext() will return false. For example:
 FieldIterator itr = pdfdoc.FieldFind("name");
 if (itr.HasNext()) {
   Console.WriteLine("Field name: {0}", itr.Current().GetName());
 }
 else { ...field was not found... }

Field pdftron::PDF::PDFDoc::FieldCreate ( const UString field_name,
Field::Type  type,
SDF::Obj  field_value = 0,
SDF::Obj  def_field_value = 0 
)

Create a new interactive form Field.

Returns:
the new form Field.
Parameters:
field_name a string representing the fully qualified name of the field (e.g. "employee.name.first"). field_name must be either a unique name or equal to an existing terminal field name.
type field type (e.g. Field::e_text, Field::e_button, etc.)
field_value 
def_field_value 
Exceptions:
if 'field_name' is equal to an existing non-terminal field name an exception is thrown.

Field pdftron::PDF::PDFDoc::FieldCreate ( const UString field_name,
Field::Type  type,
const UString field_value,
const UString def_field_value 
)

void pdftron::PDF::PDFDoc::RefreshFieldAppearances (  ) 

Regenerates the appearance stream for every widget annotation in the document Call this method if you modified field's value and would like to update field's appearances.

void pdftron::PDF::PDFDoc::FlattenFields (  ) 

Flatten all form fields in the document.

Please refer to documentation for PDF::Field for more information about form flattening.

SDF::Obj pdftron::PDF::PDFDoc::GetAcroForm (  ) 

Returns:
the AcroForm dictionary located in "/Root" or NULL if dictionary is not present.

FDF::FDFDoc pdftron::PDF::PDFDoc::FDFExtract (  ) 

Returns:
a pointer to the newly created FDF file with an interactive data.

void pdftron::PDF::PDFDoc::FDFMerge ( FDF::FDFDoc fdf_doc  ) 

Import form data from FDF file to PDF interactive form.

Parameters:
fdf_doc - a pointer to the FDF file

Action pdftron::PDF::PDFDoc::GetOpenAction (  ) 

Returns:
Action that is triggered when the document is opened. The returned action can be either a destination or some other kind of Action (see Section 8.5, 'Actions' in PDF Reference Manual).
Note:
if the document does not nave associated action the returned Action will be null (i.e. Action.IsValid() returns false)

void pdftron::PDF::PDFDoc::SetOpenAction ( const Action action  ) 

Sets the Action that will be triggered when the document is opened.

Parameters:
action A new Action that will be triggered when the document is opened. An example of such action is a GoTo Action that takes the user to a given location in the document.

void pdftron::PDF::PDFDoc::AddFileAttachment ( const char *  file_key,
FileSpec  embedded_file 
)

Associates a file attachment with the document.

The file attachment will be displayed in the user interface of a viewer application (in Acrobat this is File Attachment tab). The function differs from Annot.CreateFileAttachment() because it associates the attachment with the whole document instead of an annotation on a specific page.

Parameters:
file_key A key/name under which the attachment will be stored.
embedded_file Embedded file stream
Note:
Another way to associate a file attachment with the document is using SDF::NameTree:
   SDF::NameTree names = SDF::NameTree::Create(doc, "EmbeddedFiles");
   names.Put(file_key, file_keysz, embedded_file.GetSDFObj());

PageLabel pdftron::PDF::PDFDoc::GetPageLabel ( int  page_num  ) 

Returns:
the PageLabel that is in effect for the given page. If there is no label object in effect, this method returns an invalid page label object.
Parameters:
page_num The page number. Because PDFNet indexes pages starting from 1, page_num must be larger than 0.

void pdftron::PDF::PDFDoc::SetPageLabel ( int  page_num,
PageLabel label 
)

Attaches a label to a page.

This establishes the numbering scheme for that page and all following it, until another page label is encountered. This label allows PDF producers to define a page numbering system other than the default.

Parameters:
page_num The number of the page to label. If page_num is less than 1 or greater than the number of pages in the document, the method does nothing.

void pdftron::PDF::PDFDoc::RemovePageLabel ( int  page_num  ) 

Removes the page label that is attached to the specified page, effectively merging the specified range with the previous page label sequence.

Parameters:
page_num The page from which the page label is removed. Because PDFNet indexes pages starting from 1, page_num must be larger than 0.

bool pdftron::PDF::PDFDoc::IsTagged (  ) 

Returns:
true if this document is marked as Tagged PDF, false otherwise.

Struct::STree pdftron::PDF::PDFDoc::GetStructTree (  ) 

Returns:
The document's logical structure tree root.

bool pdftron::PDF::PDFDoc::HasOC (  )  const

Returns:
true if the optional content (OC) feature is associated with the document. The document is considered to have optional content if there is an OCProperties dictionary in the document's catalog, and that dictionary has one or more entries in the OCGs array.

SDF::Obj pdftron::PDF::PDFDoc::GetOCGs (  )  const

Returns:
the Obj array that contains optional-content groups (OCGs) for the document, or NULL if the document does not contain any OCGs. The order of the groups is not guaranteed to be the creation order, and is not the same as the display order.

OCG::Config pdftron::PDF::PDFDoc::GetOCGConfig (  )  const

Returns:
the default optional-content configuration for the document from the OCProperties D entry.

void pdftron::PDF::PDFDoc::AddHighlights ( const UString hilite  ) 

AddHighlights is used to highlight text in a document using 'Adobe's Highlight File Format' (Technical Note #5172 ).

The method will parse the character offset data and modify the current document by adding new highlight annotations.

Parameters:
hilite a string representing the filename for the highlight file or or a data buffer containing XML data.
Exceptions:
An exception will be thrown if the XML file is malformed or os out of sync with the document.

SDF::Obj pdftron::PDF::PDFDoc::CreateIndirectName ( const char *  name  ) 

The following list of methods is used to create SDF/Cos indirect objects.

Unlike direct objects, indirect objects can be referenced by more than one object (i.e. indirect objects they can be shared).

SDF::Obj pdftron::PDF::PDFDoc::CreateIndirectArray (  ) 

SDF::Obj pdftron::PDF::PDFDoc::CreateIndirectBool ( bool  value  ) 

SDF::Obj pdftron::PDF::PDFDoc::CreateIndirectDict (  ) 

SDF::Obj pdftron::PDF::PDFDoc::CreateIndirectNull (  ) 

SDF::Obj pdftron::PDF::PDFDoc::CreateIndirectNumber ( double  value  ) 

SDF::Obj pdftron::PDF::PDFDoc::CreateIndirectString ( const UChar value,
UInt32  size 
)

SDF::Obj pdftron::PDF::PDFDoc::CreateIndirectString ( const UString str  ) 

SDF::Obj pdftron::PDF::PDFDoc::CreateIndirectStream ( Filters::FilterReader data,
Filters::Filter  filter_chain = Filters::Filter(0, false) 
)

SDF::Obj pdftron::PDF::PDFDoc::CreateIndirectStream ( const char *  data,
const size_t  data_size,
Filters::Filter  filter_chain = Filters::Filter(0, false) 
)

SDF::SDFDoc& pdftron::PDF::PDFDoc::GetSDFDoc (  ) 

Returns:
document's SDF/Cos document

Referenced by operator SDF::SDFDoc &().

pdftron::PDF::PDFDoc::operator SDF::SDFDoc & (  )  [inline]

Explicit conversion operator from PDFDoc to SDF::Doc.

Returns:
document’s SDF/Cos document

References GetSDFDoc().

void pdftron::PDF::PDFDoc::Lock (  ) 

Locks the document to prevent competing threads from accessing the document at the same time.

Threads attempting to access the document will wait in suspended state until the thread that owns the lock calls doc.Unlock().

void pdftron::PDF::PDFDoc::Unlock (  ) 

Removes the lock from the document.

bool pdftron::PDF::PDFDoc::IsLocked (  ) 

Returns:
true if the document is locked for multi-threaded access, false otherwise.

bool pdftron::PDF::PDFDoc::TryLock ( int  milliseconds = 0  ) 

Try locking the document, waiting no longer than specified number of milliseconds.

Returns:
true if the document is locked for multi-threaded access, false otherwise.

UString pdftron::PDF::PDFDoc::GetFileName (  )  const

Returns:
The filename of the document if the document is loaded from disk, or empty string if the document is not yet saved or is loaded from a memory buffer.


© 2002-2010 PDFTron Systems Inc.