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

Public Types

enum  ZoomMode {
  e_ZoomXYZ = 1, e_ZoomFitPage = 2, e_ZoomFitHorz = 3, e_ZoomFitVert = 4,
  e_ZoomFitRect = 5, e_ZoomFitBBox = 6, e_ZoomFitBHorz = 7, e_ZoomFitBVert = 8
}
 Enumeration for zoom mode. More...
 

Public Member Functions

 Destination (objects::PDFArray *dest_array)
 Constructor, with a specified PDF array object. More...
 
 Destination (const Destination &other)
 Constructor, with another destination object. More...
 
 ~Destination ()
 Destructor.
 
float GetBottom () const
 Get bottom position value. More...
 
objects::PDFArrayGetDestArray () const
 Get the destination PDF array. More...
 
float GetLeft () const
 Get left position value. More...
 
int GetPageIndex (const PDFDoc &document) const
 Get the index of the destination page. More...
 
float GetRight () const
 Get right position value. More...
 
float GetTop () const
 Get top position value. More...
 
float GetZoomFactor () const
 Get zoom factor. More...
 
Destination::ZoomMode GetZoomMode () const
 Get the zoom mode. More...
 
bool IsEmpty () const
 Check whether current object is empty or not. More...
 
bool IsLeftNull () const
 Check if left value is a null object. More...
 
bool IsTopNull () const
 Check if top value is a null object. More...
 
bool operator!= (const Destination &other) const
 Not equal operator. More...
 
Destinationoperator= (const Destination &other)
 Assign operator. More...
 
bool operator== (const Destination &other) const
 Equal operator. More...
 
- Public Member Functions inherited from foxit::Base
FS_HANDLE Handle () const
 Get the handle of current object. More...
 

Static Public Member Functions

static Destination CreateFitBBox (const PDFDoc &document, int page_index)
 Create a destination object for zoom mode Destination::e_ZoomFitBBox. More...
 
static Destination CreateFitBHorz (const PDFDoc &document, int page_index, float top)
 Create a destination object for zoom mode Destination::e_ZoomFitBHorz. More...
 
static Destination CreateFitBVert (const PDFDoc &document, int page_index, float left)
 Create a destination object for zoom mode Destination::e_ZoomFitBVert. More...
 
static Destination CreateFitHorz (const PDFDoc &document, int page_index, float top)
 Create a destination object for zoom mode Destination::e_ZoomFitHorz. More...
 
static Destination CreateFitPage (const PDFDoc &document, int page_index)
 Create a destination object for zoom mode Destination::e_ZoomFitPage. More...
 
static Destination CreateFitRect (const PDFDoc &document, int page_index, float left, float bottom, float right, float top)
 Create a destination object for zoom mode Destination::e_ZoomFitRect. More...
 
static Destination CreateFitVert (const PDFDoc &document, int page_index, float left)
 Create a destination object for zoom mode Destination::e_ZoomFitVert. More...
 
static Destination CreateFromPDFArray (const PDFDoc &document, objects::PDFArray *pdf_array)
 Create a destination object from an existing destination array. More...
 
static Destination CreateXYZ (const PDFDoc &document, int page_index, float left, float top, float zoom_factor)
 Create a destination object for zoom mode Destination::e_ZoomXYZ. More...
 

Detailed Description

A destination defines a particular view of a PDF document, consisting of the following items:

  • The page of the document to be displayed.
  • The location of the document window on that page.
  • The magnification (zoom) factor to use when displaying the page.

Destinations may be associated with bookmarks, or some types of actions. In each case, the destination specifies the view of the document to be presented when the bookmark item or link annotation is opened or the action is performed.
This class offers functions to create destination objects for different zoom mode, and get destination data.

See also
pdf::Bookmark
actions::GotoAction
actions::RemoteGotoAction
actions::EmbeddedGotoAction

Member Enumeration Documentation

◆ ZoomMode

Enumeration for zoom mode.

Values of this enumeration should be used alone.

Enumerator
e_ZoomXYZ 

Display page with a specified position and a specified zoom factor.

If this is used, that means the specified position of the page will be treated as the left-top position when the page is rendered and this position should be at the upper-left corner of the display area. Contents of the page should be magnified by the specified zoom factor.

e_ZoomFitPage 

Fit the entire page within the display area when display the page.

If this is used, that means the contents of the page should be magnified just enough to fit the entire page within the display area both horizontally and vertically. If the required horizontal and vertical magnification factors are different, use the smaller of the two, centering the page within the window in the other dimension.

e_ZoomFitHorz 

Fit the entire width of the page within the display area when display the page.

If this is used, that means the contents of the page should be magnified just enough to fit the entire width of the page within the display area.

e_ZoomFitVert 

Fit the entire height of the page within the display area when display the page.

If this is used, that means the contents of the page should be magnified just enough to fit the entire height of the page within the display area.

e_ZoomFitRect 

Fit the page content in a specified rectangle entirely within the display area when display the page.

If this is used, that means the contents of the page should be magnified just enough to fit the page content in the specified rectangle entirely within the display area both horizontally and vertically. If the required horizontal and vertical magnification factors are different, use the smaller of the two, centering the rectangle within the display area in the other dimension.

e_ZoomFitBBox 

Fit the bounding box of page entirely within the display area when display the page.

If this is used, that means the contents of the page should be magnified just enough to fit its bounding box entirely within the display area both horizontally and vertically. If the required horizontal and vertical magnification factors are different, use the smaller of the two, centering the bounding box within the display area in the other dimension.

e_ZoomFitBHorz 

Fit the entire width of the page's bounding box within the display area when display the page.

If this is used, that means the contents of the page should be magnified just enough to fit the entire width of the page's bounding box within the display area.

e_ZoomFitBVert 

Fit the entire height of the page's bounding box within the display area when display the page.

If this is used, that means the contents of the page should be magnified just enough to fit the entire height of the page's bounding box within the display area.

Constructor & Destructor Documentation

◆ Destination() [1/2]

foxit::pdf::Destination::Destination ( objects::PDFArray dest_array)
explicit

Constructor, with a specified PDF array object.

Parameters
[in]dest_arrayA PDF array object that represents destination data.

◆ Destination() [2/2]

foxit::pdf::Destination::Destination ( const Destination other)

Constructor, with another destination object.

Parameters
[in]otherAnother destination object.

Member Function Documentation

◆ CreateFitBBox()

static Destination foxit::pdf::Destination::CreateFitBBox ( const PDFDoc document,
int  page_index 
)
static

Create a destination object for zoom mode Destination::e_ZoomFitBBox.

Parameters
[in]documentA valid PDF document object.
[in]page_indexThe index of the destination page in the PDF document.
Returns
A new destination object.

◆ CreateFitBHorz()

static Destination foxit::pdf::Destination::CreateFitBHorz ( const PDFDoc document,
int  page_index,
float  top 
)
static

Create a destination object for zoom mode Destination::e_ZoomFitBHorz.

Parameters
[in]documentA valid PDF document object.
[in]page_indexThe index of the destination page in the PDF document.
[in]topThe vertical coordinate of top edge
Returns
A new destination object.

◆ CreateFitBVert()

static Destination foxit::pdf::Destination::CreateFitBVert ( const PDFDoc document,
int  page_index,
float  left 
)
static

Create a destination object for zoom mode Destination::e_ZoomFitBVert.

Parameters
[in]documentA valid PDF document object.
[in]page_indexThe index of the destination page in the PDF document.
[in]leftHorizontal coordinate of left edge.
Returns
A new destination object.

◆ CreateFitHorz()

static Destination foxit::pdf::Destination::CreateFitHorz ( const PDFDoc document,
int  page_index,
float  top 
)
static

Create a destination object for zoom mode Destination::e_ZoomFitHorz.

Parameters
[in]documentA valid PDF document object.
[in]page_indexThe index of the destination page in the PDF document.
[in]topVertical coordinate of top edge.
Returns
A new destination object.

◆ CreateFitPage()

static Destination foxit::pdf::Destination::CreateFitPage ( const PDFDoc document,
int  page_index 
)
static

Create a destination object for zoom mode Destination::e_ZoomFitPage.

Parameters
[in]documentA valid PDF document object.
[in]page_indexThe index of the destination page in the PDF document.
Returns
A new destination object.

◆ CreateFitRect()

static Destination foxit::pdf::Destination::CreateFitRect ( const PDFDoc document,
int  page_index,
float  left,
float  bottom,
float  right,
float  top 
)
static

Create a destination object for zoom mode Destination::e_ZoomFitRect.

Parameters
[in]documentA valid PDF document object.
[in]page_indexThe index of the destination page in the PDF document.
[in]leftThe coordinate left of a rectangle.
[in]bottomThe coordinate bottom of a rectangle.
[in]rightThe coordinate right of a rectangle.
[in]topThe coordinate top of a rectangle.
Returns
A new destination object.

◆ CreateFitVert()

static Destination foxit::pdf::Destination::CreateFitVert ( const PDFDoc document,
int  page_index,
float  left 
)
static

Create a destination object for zoom mode Destination::e_ZoomFitVert.

Parameters
[in]documentA valid PDF document object.
[in]page_indexThe index of the destination page in the PDF document.
[in]leftHorizontal coordinate of left edge.
Returns
A new destination object.

◆ CreateFromPDFArray()

static Destination foxit::pdf::Destination::CreateFromPDFArray ( const PDFDoc document,
objects::PDFArray pdf_array 
)
static

Create a destination object from an existing destination array.

Parameters
[in]documentA valid PDF document object.
[in]pdf_arrayA destination PDF array. This PDF array can be retrieved from a objects::PDFNameTree in type objects::PDFNameTree::e_Dests.
Returns
A new destination object.

◆ CreateXYZ()

static Destination foxit::pdf::Destination::CreateXYZ ( const PDFDoc document,
int  page_index,
float  left,
float  top,
float  zoom_factor 
)
static

Create a destination object for zoom mode Destination::e_ZoomXYZ.

Parameters
[in]documentA valid PDF document object.
[in]page_indexThe index of the destination page in the PDF document.
[in]leftHorizontal coordinate value of a position as page's left-top position.
[in]topVertical coordinate value of a position as page's left-top position.
[in]zoom_factorZoom factor value.
Returns
A new destination object.

◆ GetBottom()

float foxit::pdf::Destination::GetBottom ( ) const

Get bottom position value.

This is only useful when zoom mode is Destination::e_ZoomFitRect. For other zoom mode, this function will be 0.0f.

Returns
The bottom position value.

◆ GetDestArray()

objects::PDFArray* foxit::pdf::Destination::GetDestArray ( ) const

Get the destination PDF array.

Returns
The destination PDF array.

◆ GetLeft()

float foxit::pdf::Destination::GetLeft ( ) const

Get left position value.

This is only useful when zoom mode is Destination::e_ZoomXYZ, Destination::e_ZoomFitVert, Destination::e_ZoomFitRect or Destination::e_ZoomFitBVert. Specially for Destination::e_ZoomXYZ, Destination::e_ZoomFitVert and Destination::e_ZoomFitBVert, left value may be a null object, which means that just use current left value of application as the destination's left value. For this case, this function will return 0.0f. In order to check if the left value is just 0 or a null object, user is recommended to call function Destination::IsLeftNull.
For other zoom mode, this function will return 0.0f.

Returns
The left position value.

◆ GetPageIndex()

int foxit::pdf::Destination::GetPageIndex ( const PDFDoc document) const

Get the index of the destination page.

Parameters
[in]documentA valid PDF document object.
Returns
The page index, starting from 0. If there is any error, this function will return -1.

◆ GetRight()

float foxit::pdf::Destination::GetRight ( ) const

Get right position value.

This is only useful when zoom mode is Destination::e_ZoomFitRect. For other zoom mode, this function will be 0.0f.

Returns
The right position value.

◆ GetTop()

float foxit::pdf::Destination::GetTop ( ) const

Get top position value.

This is only useful when zoom mode is Destination::e_ZoomXYZ, Destination::e_ZoomFitHorz, Destination::e_ZoomFitBHorz or Destination::e_ZoomFitRect. Specially for Destination::e_ZoomXYZ, Destination::e_ZoomFitHorz and Destination::e_ZoomFitBHorz, top value may be a null object, which means that just use current top value of application as the destination's top value. For this case, this function will return 0.0f. In order to check if the left value is just 0 or a null object, user is recommended to call function Destination::IsTopNull.
For other zoom mode, this function will return 0.0f.

Returns
The top position value.

◆ GetZoomFactor()

float foxit::pdf::Destination::GetZoomFactor ( ) const

Get zoom factor.

This is only useful when zoom mode is Destination::e_ZoomXYZ. For Destination::e_ZoomXYZ, if the zoom factor is 0, that means just use current zoom factor of application as the destination zoom factor.
For other zoom mode, this function will be 0.0f.

Returns
The zoom factor.

◆ GetZoomMode()

Destination::ZoomMode foxit::pdf::Destination::GetZoomMode ( ) const

Get the zoom mode.

Returns
Zoom mode value. Please refer to values starting from Destination::e_ZoomXYZ and this would be one of these values. If no zoom mode or zoom mode is unknown, this function will return 0.

◆ IsEmpty()

bool foxit::pdf::Destination::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.

◆ IsLeftNull()

bool foxit::pdf::Destination::IsLeftNull ( ) const

Check if left value is a null object.

This is only useful when zoom mode is Destination::e_ZoomXYZ, Destination::e_ZoomFitVert or Destination::e_ZoomFitBVert. This function can be used to check if the left value is a null object. For other zoom mode, this function will return false.

Returns
true means left value is a null object, and false means left value is not a null object and the left value can be retrieved by function Destination::GetLeft.

◆ IsTopNull()

bool foxit::pdf::Destination::IsTopNull ( ) const

Check if top value is a null object.

This is only useful when zoom mode is Destination::e_ZoomXYZ, Destination::e_ZoomFitHorz, or Destination::e_ZoomFitBHorz. This function can be used to check if the top value is a null object. For other zoom mode, this function will return false.

Returns
true means top value is a null object, and false means top value is not a null object and the top value can be retrieved by function Destination::GetTop.

◆ operator!=()

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

Not equal operator.

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

◆ operator=()

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

Assign operator.

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

◆ operator==()

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

Equal operator.

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