All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
pdftron::FDF::FDFDoc Class Reference

#include <FDFDoc.h>

Public Member Functions

 FDFDoc (TRN_FDFDoc impl=0, bool owner=true)
 
 FDFDoc (SDF::SDFDoc &sdfdoc)
 
 FDFDoc (const char *filepath)
 
 FDFDoc (const UString &filepath)
 
 FDFDoc (Filters::Filter stream)
 
 FDFDoc (const char *buf, size_t buf_size)
 
 ~FDFDoc ()
 
void Close ()
 
bool IsModified () const
 
void Save (const UString &path)
 
std::vector< unsigned char > Save ()
 
void Save (const char *&out_buf, size_t &out_buf_size)
 
SDF::Obj GetTrailer ()
 
SDF::Obj GetRoot ()
 
SDF::Obj GetFDF ()
 
UString GetPDFFileName ()
 
void SetPDFFileName (const UString &filepath)
 
SDF::Obj GetID ()
 
void SetID (SDF::Obj id)
 
FDFFieldIterator GetFieldIterator ()
 
FDFFieldIterator GetFieldIterator (const UString &field_name)
 
FDFField GetField (const UString &field_name)
 
FDFField FieldCreate (const UString &field_name, PDF::Field::Type type, SDF::Obj field_value=0)
 
FDFField FieldCreate (const UString &field_name, PDF::Field::Type type, const UString &field_value)
 
SDF::SDFDocGetSDFDoc ()
 
void SaveAsXFDF (const UString &filepath)
 
void SaveAsXFDF (const UString &filepath, const FDF::XFDFExportOptions &opts)
 
UString SaveAsXFDF ()
 
UString SaveAsXFDF (const FDF::XFDFExportOptions &opts)
 
void MergeAnnots (const UString &command_file, const UString &permitted_user="")
 
 FDFDoc (const FDFDoc &other)
 

Static Public Member Functions

static FDFDoc CreateFromXFDF (const UString &file_name)
 

Detailed Description

FDFDoc is a class representing Forms Data Format (FDF) documents. FDF is typically used when submitting form data to a server, receiving the response, and incorporating it into the interactive form. It can also be used to export form data to stand-alone files that can be stored, transmitted electronically, and imported back into the corresponding PDF interactive form. In addition, beginning in PDF 1.3, FDF can be used to define a container for annotations that are separate from the PDF document to which they apply.

Note: While the constructor does not, a few methods in FDFDoc will cause it to count as a document for the consumption-based licensing if was not created through PDFDoc::FDFExtract(). Please consult individual API documentation for exact details.

Definition at line 45 of file FDFDoc.h.

Constructor & Destructor Documentation

pdftron::FDF::FDFDoc::FDFDoc ( TRN_FDFDoc  impl = 0,
bool  owner = true 
)

Default constructor

Parameters
implIf impl is null (default constructor), creates an empty new document. If impl is not null, initializes a FDFDoc based on the low-level TRN_FDFDoc.
pdftron::FDF::FDFDoc::FDFDoc ( SDF::SDFDoc sdfdoc)

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

Parameters
sdfdocAn SDF document. FDFDoc 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::FDF::FDFDoc::FDFDoc ( const char *  filepath)

Open an existing FDF document

Parameters
filepath- pathname to the file.
pdftron::FDF::FDFDoc::FDFDoc ( const UString filepath)
pdftron::FDF::FDFDoc::FDFDoc ( Filters::Filter  stream)

Open an existing FDF 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 FDF, 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 FDFDoc(...) for encrypted documents.
pdftron::FDF::FDFDoc::FDFDoc ( 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 if necessary.
Parameters
buf- a memory buffer containing the serialized document
buf_size- the size of memory buffer.
pdftron::FDF::FDFDoc::~FDFDoc ( )

Destructor

pdftron::FDF::FDFDoc::FDFDoc ( const FDFDoc other)

Member Function Documentation

void pdftron::FDF::FDFDoc::Close ( )

Close FDFDoc

static FDFDoc pdftron::FDF::FDFDoc::CreateFromXFDF ( const UString file_name)
static

Create a new FDFDoc from XFDF input. Input can be either a XFDF file path, or the XFDF data itself.

Parameters
file_name- string containing either the file path to a XFDF file, or the XML buffer containing the XFDF.
Returns
A new FDFDoc.
FDFField pdftron::FDF::FDFDoc::FieldCreate ( const UString field_name,
PDF::Field::Type  type,
SDF::Obj  field_value = 0 
)

Create a new interactive form FDFField.

Returns
Exceptions
FDFField pdftron::FDF::FDFDoc::FieldCreate ( const UString field_name,
PDF::Field::Type  type,
const UString field_value 
)
SDF::Obj pdftron::FDF::FDFDoc::GetFDF ( )
Returns
the FDF dictionary located in "/Root" or NULL if dictionary is not present.
FDFField pdftron::FDF::FDFDoc::GetField ( const UString field_name)
Parameters
field_name- a string representing the fully qualified name of the field (e.g. "employee.name.first").
Returns
a FDFField associated with the given field_name or invalid field (null) if the field is not found.
FDFFieldIterator pdftron::FDF::FDFDoc::GetFieldIterator ( )

An interactive form (sometimes referred to as an AcroForm) is a collection of fields for gathering information interactively from the user. A FDF 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 FDFField in the document.
Note
if the document has no AcroForms, HasNext() will return false.
FDFFieldIterator pdftron::FDF::FDFDoc::GetFieldIterator ( const UString field_name)

An interactive form (sometimes referred to as an AcroForm) is a collection of fields for gathering information interactively from the user. A FDF 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).

Parameters
field_nameString representing the name of the FDFField to get.
Returns
an iterator to the FDFField in the document.
Note
if the document has no AcroForms, HasNext() will return false.
SDF::Obj pdftron::FDF::FDFDoc::GetID ( )

Get the ID entry from "/Root/FDF" dictionary.

Returns
- An object representing the ID entry in "/Root/FDF" dictionary.
UString pdftron::FDF::FDFDoc::GetPDFFileName ( )

Get the PDF document file that this FDF file was exported from or is intended to be imported into.

Returns
a String with the PDF document file name.
SDF::Obj pdftron::FDF::FDFDoc::GetRoot ( )
Returns
- A dictionary representing the Cos root of the document (/Root entry within the trailer dictionary)
Note
This method will count as a document usage for consumption-based licensing if the current document has not yet been counted.
SDF::SDFDoc& pdftron::FDF::FDFDoc::GetSDFDoc ( )
Returns
document's SDF/Cos document
Note
This method will count as a document usage for consumption-based licensing if the current document has not yet been counted.
SDF::Obj pdftron::FDF::FDFDoc::GetTrailer ( )
Returns
- A dictionary representing the Cos root of the document (document's trailer)
Note
This method will count as a document usage for consumption-based licensing if the current document has not yet been counted.
bool pdftron::FDF::FDFDoc::IsModified ( ) const
Returns
- true if document was modified, false otherwise
void pdftron::FDF::FDFDoc::MergeAnnots ( const UString command_file,
const UString permitted_user = "" 
)

Merge the annotations from XFDF file into FDF file

Parameters
command_file- string containing the xml command file path or xml string of the command
permitted_user- optional user name of the permitted user
void pdftron::FDF::FDFDoc::Save ( const UString path)

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.
Exceptions
-if the file can't be opened for saving or if there is a problem during Save an Exception object will be thrown.
Note
This method will count as a document usage for consumption-based licensing if the current document has not yet been counted.
std::vector<unsigned char> pdftron::FDF::FDFDoc::Save ( )

Saves the document to a memory buffer.

Exceptions
-if there is a problem during Save an Exception object will be thrown.
Note
This method will count as a document usage for consumption-based licensing if the current document has not yet been counted.
void pdftron::FDF::FDFDoc::Save ( const char *&  out_buf,
size_t &  out_buf_size 
)

Saves the document to a memory buffer.

Parameters
out_bufa 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_sizethe size of the serialized document (i.e. out_buf) in bytes.
Exceptions
-if there is a problem during Save an Exception object will be thrown.
Note
This method will count as a document usage for consumption-based licensing if the current document has not yet been counted.
void pdftron::FDF::FDFDoc::SaveAsXFDF ( const UString filepath)

Export FDF file as an XFDF file

Parameters
filepath- the filepath of the exported XFDF file
void pdftron::FDF::FDFDoc::SaveAsXFDF ( const UString filepath,
const FDF::XFDFExportOptions opts 
)

Export FDF file as an XFDF file

Parameters
filepath- the filepath of the exported XFDF file
optsOptions controlling finer parameters of xfdf export
UString pdftron::FDF::FDFDoc::SaveAsXFDF ( )

Export FDF file as a XFDF string

Parameters
optsOptions controlling finer parameters of xfdf export
UString pdftron::FDF::FDFDoc::SaveAsXFDF ( const FDF::XFDFExportOptions opts)

Export FDF file as a XFDF string

Parameters
optsOptions controlling finer parameters of xfdf export
Returns
A UString containing the XFDF representation of the FDF file
void pdftron::FDF::FDFDoc::SetID ( SDF::Obj  id)

Set the ID entry in "/Root/FDF" dictionary.

Parameters
id- ID array object.
void pdftron::FDF::FDFDoc::SetPDFFileName ( const UString filepath)

Set the PDF document file that this FDF file was exported from or is intended to be imported into.

Parameters
filepath- pathname to the file.

The documentation for this class was generated from the following file: