My Project
foxit::pdf::Metadata Class Reference
Inheritance diagram for foxit::pdf::Metadata:
foxit::Base

Public Member Functions

 Metadata (const PDFDoc &document)
 Constructor, from a PDF document object. More...
 
 Metadata (const Metadata &other)
 Constructor, with another metadata object. More...
 
 ~Metadata ()
 Destructor.
 
DateTime GetCreationDateTime () const
 Get creation date time. More...
 
WStringArray GetCustomerKeys ()
 Get customer keys from metadata. More...
 
DateTime GetModifiedDateTime () const
 Get modified date time. More...
 
WStringArray GetValues (const wchar_t *key) const
 Get metadata value(s). More...
 
bool HasKey (const wchar_t *key) const
 Check whether the related PDF document has a specified metadata key or not. More...
 
bool IsEmpty () const
 Check whether current object is empty or not. More...
 
bool operator != (const Metadata &other) const
 Not equal operator. More...
 
Metadataoperator= (const Metadata &other)
 Assign operator. More...
 
bool operator== (const Metadata &other) const
 Equal operator. More...
 
void RemoveCustomerKey (const wchar_t *key)
 Remove a specified customer key (along with related value). More...
 
void SetCreationDateTime (const DateTime &date_time)
 Set creation date time. More...
 
void SetModifiedDateTime (const DateTime &date_time)
 Set modified date time. More...
 
bool SetValues (const wchar_t *key, const WStringArray &value_array)
 Set metadata value(s). More...
 
- Public Member Functions inherited from foxit::Base
FS_HANDLE Handle () const
 Get the handle of current object. More...
 

Detailed Description

In PDF document, metadata information is stored in document's Info dictionary or in metadata stream (represented in Extensible Markup Language, known as XML). When a key exists in both Info dictionary and metadata stream, the latest modified one will be used.
This class is constructed from PDF document object and is used to get or set metadata information from both document's Info dictionary and metadata stream.

Constructor & Destructor Documentation

◆ Metadata() [1/2]

foxit::pdf::Metadata::Metadata ( const PDFDoc document)
explicit

Constructor, from a PDF document object.

If there exists metadata information in the specified PDF document, this function is just to construct a metadata object to be associated with these information. If there is no such information in the specified PDF document, the constructed metadata object can be used to set metadata information to PDF document.

Parameters
[in]documentA valid PDF document object.

◆ Metadata() [2/2]

foxit::pdf::Metadata::Metadata ( const Metadata other)

Constructor, with another metadata object.

Parameters
[in]otherAnother metadata object.

Member Function Documentation

◆ GetCreationDateTime()

DateTime foxit::pdf::Metadata::GetCreationDateTime ( ) const

Get creation date time.

Returns
Creation date time. If no creation date time can be found, a date and time object with all values 0 will be returned.

◆ GetCustomerKeys()

WStringArray foxit::pdf::Metadata::GetCustomerKeys ( )

Get customer keys from metadata.

In Info dictionary and metadata stream, they have some standard keys which have same feature but different name. For this case, Foxit PDF SDK will use the standard key names in Info dictionary. Besides these standard keys, other keys will be treated as customer keys.

Returns
An string array of customer keys.

◆ GetModifiedDateTime()

DateTime foxit::pdf::Metadata::GetModifiedDateTime ( ) const

Get modified date time.

Returns
Modified date time. If no modified date time can be found, a date and time object with all values 0 will be returned.

◆ GetValues()

WStringArray foxit::pdf::Metadata::GetValues ( const wchar_t *  key) const

Get metadata value(s).

For a metadata key, it may contain single or multiple values.

Parameters
[in]keyMetadata key string. It should not be an empty string. Currently it can be one of the following keys:
"Title", "Author", "Subject", "Keywords", "Creator", "Producer", "Trapped", "CreationDate", "ModDate", "pdfaid".
It can also be some other custom information keys if they're supported by the PDF file.
For "CreationDate" and "ModDate", user is recommended to use functions Metadata::GetCreationDateTime and Metadata::GetModifiedDateTime to get the date information.
Returns
An string array of metadata value(s).

◆ HasKey()

bool foxit::pdf::Metadata::HasKey ( const wchar_t *  key) const

Check whether the related PDF document has a specified metadata key or not.

Parameters
[in]keyThe metadata key to be checked.
Returns
true means the related PDF document has the specified metadata key, while false means the related PDF document does not have the specified metadata key.

◆ IsEmpty()

bool foxit::pdf::Metadata::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::Metadata::operator != ( const Metadata other) const

Not equal operator.

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

◆ operator=()

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

Assign operator.

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

◆ operator==()

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

Equal operator.

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

◆ RemoveCustomerKey()

void foxit::pdf::Metadata::RemoveCustomerKey ( const wchar_t *  key)

Remove a specified customer key (along with related value).

Parameters
[in]keyA customer key string. It should not be an empty string. This should be one of the keys retrieved from function Metadata::GetCustomerKeys.
Returns
None.

◆ SetCreationDateTime()

void foxit::pdf::Metadata::SetCreationDateTime ( const DateTime date_time)

Set creation date time.

Parameters
[in]date_timeNew creation date time. Please refer to comment of class foxit::DateTime to check the valid range for each member.
Returns
None.

◆ SetModifiedDateTime()

void foxit::pdf::Metadata::SetModifiedDateTime ( const DateTime date_time)

Set modified date time.

Parameters
[in]date_timeNew modified date time. Please refer to comment of class foxit::DateTime to check the valid range for each member.
Returns
None.

◆ SetValues()

bool foxit::pdf::Metadata::SetValues ( const wchar_t *  key,
const WStringArray value_array 
)

Set metadata value(s).

This function is used to set single or multiple values to a specified metadata key:

  • For metadata keys "Author" and "Keywords", they can contain single or multiple values.
  • For metadata key "pdfaid" which means the PDFA file version, the length of its value string is always 2, such as "2a", "1a", etc. So, only the first two characters of the first element in parameter valueArray will be used.
  • For rest pre-defined keys, they do not support multiple values. So all the elements in parameter value_array will be put into one string and connected by ";". Then this string will be treated as a single value.
Parameters
[in]keyMetadata key string. It should not be an empty string. Currently it can be one of the following keys:
"Title", "Author", "Subject", "Keywords", "Creator", "Producer", "Trapped", "CreationDate", "ModDate", "pdfaid".
It can also be some other custom information keys if they're supported by the PDF file.
For "CreationDate" and "ModDate", user is recommended to use Metadata::SetCreationDateTime and Metadata::SetModifiedDateTime to set the date information.
[in]value_arrayAn string array of metadata value(s).
Returns
None.

Foxit Software Corporation Logo
@2019 Foxit Software Incorporated. All rights reserved.