Foxit PDF SDK
foxit::pdf::AssociatedFiles Class Reference
Inheritance diagram for foxit::pdf::AssociatedFiles:
foxit::Base

Public Types

enum  Relationship {
  e_RelationshipUnspecified = 0, e_RelationshipSource = 1, e_RelationshipData = 2, e_RelationshipAlternative = 3,
  e_RelationshipSupplement = 4, e_RelationshipEncryptedPayload = 5, e_RelationshipFormData = 6, e_RelationshipSchema = 7
}
 Enumeration for the relationship between PDF document and the associated file. More...
 

Public Member Functions

 AssociatedFiles (const AssociatedFiles &other)
 Constructor, with another associated files object. More...
 
 AssociatedFiles (const PDFDoc &pdf_doc)
 Constructor, with a PDF document. More...
 
 ~AssociatedFiles ()
 Destructor.
 
void AssociateFile (objects::PDFObject *pdf_object, const FileSpec &file_spec)
 Associate a file (represented by FileSpec) with a PDF dictionary object which represents the dictionary of an annotation, a PDF page, or other object in PDF document. More...
 
void AssociateFile (foxit::pdf::graphics::GraphicsObject *graphics_object, int mark_content_item_index, foxit::pdf::objects::PDFObject *current_resource, const char *property_name, const foxit::pdf::FileSpec &file_spec)
 Associate a file (represented by FileSpec) with a marked content item of a specified graphics object. More...
 
void AssociateFile (const foxit::pdf::PDFPage &page, const foxit::pdf::FileSpec &file_spec)
 Associate a file (represented by FileSpec) with a PDF page. More...
 
void AssociateFile (foxit::pdf::graphics::ImageObject *image, const foxit::pdf::FileSpec &file_spec)
 Associate a file (represented by FileSpec) with an image graphics object. More...
 
void AssociateFile (foxit::pdf::graphics::FormXObject *form_xobject, const foxit::pdf::FileSpec &file_spec)
 Associate a file (represented by FileSpec) with a form XObject graphics object. More...
 
void AssociateFile (const foxit::pdf::annots::Annot &annot, const foxit::pdf::FileSpec &file_spec)
 Associate a file (represented by FileSpec) with a PDF annotation. More...
 
FileSpec GetAssociatedFile (objects::PDFObject *pdf_object, int index)
 Get an associated file (represented by FileSpec) in a specified PDF dictionary object, by index. More...
 
FileSpec GetAssociatedFile (foxit::pdf::graphics::GraphicsObject *graphics_object, int index)
 Get an associated file a graphics object, by index. More...
 
int GetAssociatedFilesCount (objects::PDFObject *pdf_object)
 Get the count of associated files in a PDF dictionary object which represents the dictionary of an annotation, a PDF page, or other object in PDF document. More...
 
int GetAssociatedFilesCount (foxit::pdf::graphics::GraphicsObject *graphics_object)
 Get the count of associated files in a graphics object. More...
 
bool IsEmpty () const
 Check whether current object is empty or not. More...
 
bool operator!= (const AssociatedFiles &other) const
 Not equal operator. More...
 
AssociatedFilesoperator= (const AssociatedFiles &other)
 Assign operator. More...
 
bool operator== (const AssociatedFiles &other) const
 Equal operator. More...
 
void RemoveAssociatedFile (objects::PDFObject *pdf_object, int index)
 Remove an associated file (represented by FileSpec) in a specified PDF dictionary object, by index. More...
 
void RemoveAssociatedFile (foxit::pdf::graphics::GraphicsObject *graphics_object, int index)
 Remove an associated file a graphics object, by index. More...
 
- Public Member Functions inherited from foxit::Base
FS_HANDLE Handle () const
 Get the handle of current object. More...
 

Detailed Description

In PDF 2.0, a new concept named "Associated files" is defined. Associated files provide a means to associate content in other formats with objects of a PDF file and identify the relationship between the content and the objects. Such associated files are designated using file specification dictionaries (known as file specification). Associated files could be linked to the PDF document's catalog, a page dictionary, graphics objects, structure elements, XObject, DParts, an annotation dictionary and so on. Specially, associated files with graphics objects means to be associated with the marked content item.
Class AssociatedFiles is the class for managing associate files. It offers the functions to count/get associate files in PDF dictionary or graphics object, to associate files (represented by FileSpec) with catalog, PDF pages, graphics objects, form XObject objects, annotation objects and so on.
Specially, when construct an associated files object with a PDF document, the file version of the related PDF document will be set to 2.0.

Member Enumeration Documentation

◆ Relationship

Enumeration for the relationship between PDF document and the associated file.

Values of this enumeration should be used alone.

Enumerator
e_RelationshipUnspecified 

The relationship is not known or cannot be described by other values.

e_RelationshipSource 

The relationship is "Source" which means the file specification is the original source material for the associated content.

e_RelationshipData 

The relationship is "Data" which means the file specification represents information used to derive a visual presentation - such as for a table or a graph.

e_RelationshipAlternative 

The relationship is "Alternative" which means the file specification is an alternative representation of content, for example audio.

e_RelationshipSupplement 

The relationship is "Supplement" which means the file specification represents a supplemental representation of the original source or data that may be more easily consumable.

e_RelationshipEncryptedPayload 

The relationship is "Encrypted payload" which means the file specification is an encrypted payload document that should be displayed to the user if the PDF processor has the cryptographic filter needed to decrypt the document.

e_RelationshipFormData 

The relationship is "Form data" which means the file specification is the data associated with the "AcroForm" dictionary in the PDF file.

e_RelationshipSchema 

The relationship is "Schema" which means the file specification is a schema definition for the associated object.

Constructor & Destructor Documentation

◆ AssociatedFiles() [1/2]

foxit::pdf::AssociatedFiles::AssociatedFiles ( const AssociatedFiles other)

Constructor, with another associated files object.

Parameters
[in]otherAnother associated files object.

◆ AssociatedFiles() [2/2]

foxit::pdf::AssociatedFiles::AssociatedFiles ( const PDFDoc pdf_doc)
explicit

Constructor, with a PDF document.

When an associated files object is constructed by this constructor, the file version of input PDF document will be set to 2.0.

Parameters
[in]pdf_docA valid PDF document object.

Member Function Documentation

◆ AssociateFile() [1/6]

void foxit::pdf::AssociatedFiles::AssociateFile ( objects::PDFObject pdf_object,
const FileSpec file_spec 
)

Associate a file (represented by FileSpec) with a PDF dictionary object which represents the dictionary of an annotation, a PDF page, or other object in PDF document.

Parameters
[in]pdf_objectA valid PDF object. It should be either a PDF dictionary object or a PDF reference object that refers to a PDF dictionary object.
[in]file_specA file specification object to be associated with specified PDF dictionary. It should not be an empty string.
Returns
None.

◆ AssociateFile() [2/6]

void foxit::pdf::AssociatedFiles::AssociateFile ( foxit::pdf::graphics::GraphicsObject graphics_object,
int  mark_content_item_index,
foxit::pdf::objects::PDFObject current_resource,
const char *  property_name,
const foxit::pdf::FileSpec file_spec 
)

Associate a file (represented by FileSpec) with a marked content item of a specified graphics object.

Parameters
[in]graphics_objectA valid graphics object.
[in]mark_content_item_indexThe index of marked content item in input graphic object to which the specified file specification object is to associated with. Valid range: from 0 to (count-1). count is returned by function graphics::MarkedContent::GetItemCount of the marked content related to input graphics object.
[in]current_resourceA resource dictionary of a PDF page to which input graphics object is related. This can also be a PDF reference object that refers to such a PDF dictionary.
[in]property_nameA property name used in "Properties" dictionary of input resource dictionary. It should not be an empty string.
[in]file_specA file specification object to be associated with specified marked content item of a specified graphics object. It should not be an empty string.
Returns
None.
Note
When this function succeeds, function GraphicsObjects::GenerateContent should be called. Please refer to function GraphicsObjects::GenerateContent for more details.

◆ AssociateFile() [3/6]

void foxit::pdf::AssociatedFiles::AssociateFile ( const foxit::pdf::PDFPage page,
const foxit::pdf::FileSpec file_spec 
)

Associate a file (represented by FileSpec) with a PDF page.

In fact, this function is equals to associate a file with a PDF page dictionary.

Parameters
[in]pageA valid PDF page.
[in]file_specA file specification object to be associated with specified PDF page. It should not be an empty string.
Returns
None.

◆ AssociateFile() [4/6]

void foxit::pdf::AssociatedFiles::AssociateFile ( foxit::pdf::graphics::ImageObject image,
const foxit::pdf::FileSpec file_spec 
)

Associate a file (represented by FileSpec) with an image graphics object.

In fact, this function is equals to associate a file with a PDF dictionary of an image graphics object.

Parameters
[in]imageAn image graphics object. It should not be NULL.
[in]file_specA file specification object to be associated with specified image graphics object. It should not be an empty string.
Returns
None.

◆ AssociateFile() [5/6]

void foxit::pdf::AssociatedFiles::AssociateFile ( foxit::pdf::graphics::FormXObject form_xobject,
const foxit::pdf::FileSpec file_spec 
)

Associate a file (represented by FileSpec) with a form XObject graphics object.

In fact, this function is equals to associate a file with a PDF dictionary of a form XObject graphics object.

Parameters
[in]form_xobjectA form XObject graphics object. It should not be NULL.
[in]file_specA file specification object to be associated with specified form XObject graphics object. It should not be an empty string.
Returns
None.

◆ AssociateFile() [6/6]

void foxit::pdf::AssociatedFiles::AssociateFile ( const foxit::pdf::annots::Annot annot,
const foxit::pdf::FileSpec file_spec 
)

Associate a file (represented by FileSpec) with a PDF annotation.

In fact, this function is equals to associate a file with a PDF dictionary of a PDF annotation.

Parameters
[in]annotA valid PDF annotation.
[in]file_specA file specification object to be associated with specified PDF annotation object. It should not be an empty string.
Returns
None.

◆ GetAssociatedFile() [1/2]

FileSpec foxit::pdf::AssociatedFiles::GetAssociatedFile ( objects::PDFObject pdf_object,
int  index 
)

Get an associated file (represented by FileSpec) in a specified PDF dictionary object, by index.

Parameters
[in]pdf_objectA valid PDF object. It should be either a PDF dictionary object or a PDF reference object that refers to a PDF dictionary object.
[in]indexThe index of an associated file in the specified PDF dictionary object. Valid range: from 0 to (count-1). count is returned by function AssociatedFiles::GetAssociatedFilesCount with same parameter object.
Returns
A file specification object that represents the expected associated file.

◆ GetAssociatedFile() [2/2]

FileSpec foxit::pdf::AssociatedFiles::GetAssociatedFile ( foxit::pdf::graphics::GraphicsObject graphics_object,
int  index 
)

Get an associated file a graphics object, by index.

One or more files may be associated with sections of content in a content stream by enclosing those sections between the marked content. So, in fact, this function is to get an associated files (specified by index) in the marked content related to the graphics object.

Parameters
[in]graphics_objectA valid PDF graphics object.
[in]indexThe index of an associated file in the specified PDF graphics object. Valid range: from 0 to (count-1). count is returned by function AssociatedFiles::GetAssociatedFilesCount with same parameter graphics_object.
Returns
A file specification object that represents the expected associated file.

◆ GetAssociatedFilesCount() [1/2]

int foxit::pdf::AssociatedFiles::GetAssociatedFilesCount ( objects::PDFObject pdf_object)

Get the count of associated files in a PDF dictionary object which represents the dictionary of an annotation, a PDF page, or other object in PDF document.

Parameters
[in]pdf_objectA valid PDF object. It should be either a PDF dictionary object or a PDF reference object that refers to a PDF dictionary object.
Returns
The count of associated files.

◆ GetAssociatedFilesCount() [2/2]

int foxit::pdf::AssociatedFiles::GetAssociatedFilesCount ( foxit::pdf::graphics::GraphicsObject graphics_object)

Get the count of associated files in a graphics object.

One or more files may be associated with sections of content in a content stream by enclosing those sections between the marked content. So, in fact, this function is to count associated files in the marked content related to the graphics object.

Parameters
[in]graphics_objectA valid PDF graphics object.
Returns
The count of associated files.

◆ IsEmpty()

bool foxit::pdf::AssociatedFiles::IsEmpty ( ) const

Check whether current object is empty or not.

When the current object is empty, that means current object is useless.

Returns
true means current object is empty, while false means not.

◆ operator!=()

bool foxit::pdf::AssociatedFiles::operator!= ( const AssociatedFiles other) const

Not equal operator.

Parameters
[in]otherAnother associated files object. This function will check if current object is not equal to this one.
Returns
true means not equal, while false means equal.

◆ operator=()

AssociatedFiles& foxit::pdf::AssociatedFiles::operator= ( const AssociatedFiles other)

Assign operator.

Parameters
[in]otherAnother associated files object, whose value would be assigned to current object.
Returns
Reference to current object itself.

◆ operator==()

bool foxit::pdf::AssociatedFiles::operator== ( const AssociatedFiles other) const

Equal operator.

Parameters
[in]otherAnother associated files object. This function will check if current object is equal to this one.
Returns
true means equal, while false means not equal.

◆ RemoveAssociatedFile() [1/2]

void foxit::pdf::AssociatedFiles::RemoveAssociatedFile ( objects::PDFObject pdf_object,
int  index 
)

Remove an associated file (represented by FileSpec) in a specified PDF dictionary object, by index.

Parameters
[in]pdf_objectA valid PDF object. It should be either a PDF dictionary object or a PDF reference object that refers to a PDF dictionary object.
[in]indexThe index of an associated file in the specified PDF dictionary object. Valid range: from 0 to (count-1). count is returned by function AssociatedFiles::GetAssociatedFilesCount with same parameter object.
Returns
None.

◆ RemoveAssociatedFile() [2/2]

void foxit::pdf::AssociatedFiles::RemoveAssociatedFile ( foxit::pdf::graphics::GraphicsObject graphics_object,
int  index 
)

Remove an associated file a graphics object, by index.

One or more files may be associated with sections of content in a content stream by enclosing those sections between the marked content. So, in fact, this function is to count associated files in the marked content related to the graphics object.

Parameters
[in]graphics_objectA valid PDF graphics object.
[in]indexThe index of an associated file in the specified PDF graphics object. Valid range: from 0 to (count-1). count is returned by function AssociatedFiles::GetAssociatedFilesCount with same parameter graphics_object.
Returns
A file specification object that represents the expected associated file.