Foxit PDF SDK
|
Public Types | |
enum | BoxType { e_MediaBox = 0, e_CropBox = 1, e_TrimBox = 2, e_ArtBox = 3, e_BleedBox = 4 } |
Enumeration for page box type. More... | |
enum | CalcMarginMode { e_CalcContentsBox = 0, e_CalcDetection = 1 } |
Enumeration for calculating margin mode. More... | |
enum | FlattenOptions { e_FlattenAll = 0, e_FlattenNoAnnot = 0x0001, e_FlattenNoFormControl = 0x0002 } |
Enumeration for flatten options. More... | |
enum | ParseFlags { e_ParsePageNormal = 0x0000, e_ParsePageTextOnly = 0x0001 } |
Enumeration for parsing flags used for PDF page. More... | |
enum | Size { e_SizeLetter = 1, e_SizeLegal = 2, e_SizeA2 = 3, e_SizeA3 = 4, e_SizeA4 = 5, e_SizeA5 = 6, e_SizeA6 = 7, e_SizeB2 = 8, e_SizeB3 = 9, e_SizeB4 = 10, e_SizeB5 = 11, e_SizeB6 = 12 } |
Enumeration for page size type. More... | |
Public Member Functions | |
PDFPage (const PDFDoc &document, objects::PDFDictionary *page_dict) | |
Constructor, from a PDF dictionary which represents a PDF page and the PDF document which contains the dictionary.. More... | |
PDFPage (const foxit::pdf::GraphicsObjects &other) | |
Constructor, with parent class object. More... | |
virtual | ~PDFPage () |
Destructor. | |
annots::Annot | AddAnnot (annots::Annot::Type type, const RectF &rect) |
Add an annotation to PDF page. More... | |
bool | AddImage (const common::Image &image, int frame_index, const PointF &position, float width, float height, bool auto_generate_content=true) |
Add an image to current page. More... | |
bool | AddImageFromFilePath (const char *file_path, const PointF &position, float width, float height, bool auto_generate_content=true) |
Add an image to current page from file path. More... | |
bool | AddImageFromFilePath (const wchar_t *file_path, const PointF &position, float width, float height, bool auto_generate_content=true) |
Add an image to current page from file path. More... | |
foxit::pdf::Signature | AddSignature (const foxit::RectF &rect) |
Add an ordinary signature to PDF page. More... | |
foxit::pdf::Signature | AddSignature (const foxit::RectF &rect, const foxit::WString &field_name) |
Add an ordinary signature to PDF page. More... | |
foxit::pdf::Signature | AddSignature (const foxit::RectF &rect, const foxit::WString &field_name, foxit::pdf::Signature::SignatureType signature_type) |
Add a signature to PDF page. More... | |
RectF | CalcContentBBox (CalcMarginMode mode) |
Calculate the content area of PDF page. More... | |
void | ClearRenderCache () |
Clear render cache. More... | |
bool | Flatten (bool for_display, uint32 options=PDFPage::e_FlattenAll) |
Flatten current PDF page: annotations or form fields may be made to be a part of the page contents according to specified options. More... | |
bool | FlattenAnnot (annots::Annot annot) |
Flatten an annotation: the annotation is made to be a part of the page contents and be removed then. More... | |
annots::Annot | GetAnnot (int index) |
Get an annotation by index. More... | |
annots::Annot | GetAnnotAtDevicePoint (const PointF &position, float tolerance, const Matrix *matrix=0) |
Get the annotation at a specified position, in device coordination system. More... | |
annots::Annot | GetAnnotAtPoint (const PointF &position, float tolerance) |
Get the annotation at a specified position, in PDF coordinate system. More... | |
int | GetAnnotCount () |
Get the count of annotations. More... | |
objects::PDFArray * | GetAnnots () const |
Get the PDF array of "Annots". More... | |
RectF | GetBox (BoxType box_type) |
Get page box. More... | |
objects::PDFObject * | GetContents () const |
Get the PDF object of "Contents". More... | |
objects::PDFDictionary * | GetDict () const |
Get the page dictionary. More... | |
Matrix | GetDisplayMatrix (int left, int top, int width, int height, common::Rotation rotate) |
Get the display matrix of PDF page, from PDF coordinate system to targeted device coordinate system. More... | |
PDFDoc | GetDocument () const |
Get the PDF document, to which current PDF page belongs. More... | |
graphics::GraphicsObject * | GetGraphicsObjectAtDevicePoint (const PointF &point, float tolerance, const Matrix *matrix, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const |
Get the topmost graphics object in specified point in device coordinate system, with specified type filter. More... | |
graphics::GraphicsObject * | GetGraphicsObjectAtPoint (const PointF &point, float tolerance, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const |
Get the topmost graphics object in specified point, with specified type filter. More... | |
graphics::GraphicsObject * | GetGraphicsObjectAtRectangle (const RectF &rect, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const |
Get the topmost graphics object whose rectangle interasects with a specified rectangle, with specified type filter. More... | |
graphics::GraphicsObjectArray | GetGraphicsObjectsAtDevicePoint (const PointF &point, float tolerance, const Matrix *matrix, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) |
Get all the graphics objects in specified point in device coordinate system, with specified type filter. More... | |
graphics::GraphicsObjectArray | GetGraphicsObjectsAtPoint (const PointF &point, float tolerance, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) |
Get all the graphics objects in specified point, with specified type filter. More... | |
graphics::GraphicsObjectArray | GetGraphicsObjectsAtRectangle (const RectF &rect, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) |
Get all the graphics objects whose rectangles intersect with a specified rectangle, with specified type filter. More... | |
float | GetHeight () const |
Get the page height. More... | |
int | GetIndex () const |
Get page index. More... | |
objects::PDFObject * | GetInheritedAttribute (const char *attruibute_name) const |
Get the PDF object for specified attribute which may be inherited from the ancestor node in the page tree. More... | |
objects::PDFDictionary * | GetResources () const |
Get the PDF dictionary of "Resources". More... | |
common::Rotation | GetRotation () const |
Get the page rotation. More... | |
objects::PDFStream * | GetThumb () const |
Get the PDF stream of "Thumb". More... | |
float | GetUserUnitSize () const |
Get the user unit. More... | |
float | GetWidth () const |
Get the page width. More... | |
bool | HasTransparency () |
Check whether current PDF page has transparency or not. More... | |
bool | HasWatermark () |
Check whether the current page has any watermark (not including Foxit PDF SDK trial watermark). More... | |
bool | IsParsed () const |
Check if current page has been parsed or not. More... | |
common::Bitmap | LoadThumbnail () |
Load the thumbnail bitmap. More... | |
void | MoveAnnotToFirst (const annots::Annot &annot) |
Change specified annotation to be the first one of all annotations. More... | |
void | MoveAnnotToLast (const annots::Annot &annot) |
Change specified annotation to be the last one of all annotations. More... | |
void | MoveAnnotToNext (const annots::Annot &annot) |
Exchange the indexes of current annotation and its next annotation. More... | |
void | MoveAnnotToPrev (const annots::Annot &annot) |
Exchange the indexes of current annotation and its previous annotation. More... | |
bool | RemoveAllWatermarks () |
Remove all watermarks. More... | |
bool | RemoveAnnot (const annots::Annot &annot) |
Remove an annotation. More... | |
bool | SetAnnotGroup (const annots::MarkupArray &annot_array, int header_index) |
Group all the input markup annotations together. More... | |
void | SetBox (BoxType box_type, const RectF &box) |
Set page box. More... | |
void | SetClipRect (const RectF &clip_rect) |
Set clip rectangle for all graphics objects on current PDF page. More... | |
void | SetRotation (common::Rotation rotate) |
Set page rotation. More... | |
void | SetSize (float width, float height) |
Set page width and height. More... | |
void | SetSize (foxit::pdf::PDFPage::Size size) |
Set page size type. More... | |
void | SetThumbnail (const common::Bitmap &thumbnail) |
Set page thumbnail. More... | |
void | SetUserUnitSize (float user_unit) |
Set the user unit. More... | |
common::Progressive | StartParse (uint32 flags=PDFPage::e_ParsePageNormal, common::PauseCallback *pause=0, bool is_reparse=false) |
Start to parse current page. More... | |
bool | Transform (const Matrix &matrix, bool need_transform_clip_path) |
Transform a PDF page, including annotations and form fields on the page. More... | |
void | UpdateAnnotList () |
Update the annotation list. More... | |
![]() | |
GraphicsObjects (const GraphicsObjects &other) | |
Constructor, with another GraphicsObjects object. More... | |
virtual | ~GraphicsObjects () |
Destructor. | |
bool | GenerateContent () |
Generate contents of current graphics objects. More... | |
POSITION | GetFirstGraphicsObjectPosition (graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const |
Get the position of first graphics object in graphics object list, based on type filter. More... | |
graphics::GraphicsObject * | GetGraphicsObject (POSITION position) const |
Get the graphics object by position in graphics object list. More... | |
graphics::GraphicsObject * | GetGraphicsObject (int index) const |
Get a graphics object by index. More... | |
int | GetGraphicsObjectCount () const |
Get the count of graphics objects in graphics object list. More... | |
int | GetGraphicsObjectIndex (graphics::GraphicsObject *graphics_object) const |
Get the index of a specified graphics object in graphics object list. More... | |
POSITION | GetGraphicsObjectPosition (graphics::GraphicsObject *graphics_object) |
Get the position of the specified graphics object. More... | |
POSITION | GetLastGraphicsObjectPosition (graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const |
Get the position of last graphics object in graphics object list, based on type filter. More... | |
POSITION | GetNextGraphicsObjectPosition (POSITION position, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const |
Get the position of next graphics object in graphics object list, based on type filter and specified current position. More... | |
POSITION | GetPrevGraphicsObjectPosition (POSITION position, graphics::GraphicsObject::Type filter=graphics::GraphicsObject::e_TypeAll) const |
Get the position of previous graphics object in graphics object list, based on type filter and specified current position. More... | |
POSITION | InsertGraphicsObject (POSITION position_insert_after, graphics::GraphicsObject *graphics_object) |
Insert a graphics object after the specified position. More... | |
bool | IsEmpty () const |
Check whether current object is empty or not. More... | |
POSITION | MoveGraphicsObjectByPosition (POSITION current_position, POSITION position_move_after) |
Move a graphics object from a position to another position. More... | |
bool | operator!= (const GraphicsObjects &other) const |
Not equal operator. More... | |
GraphicsObjects & | operator= (const GraphicsObjects &other) |
Assign operator. More... | |
bool | operator== (const GraphicsObjects &other) const |
Equal operator. More... | |
bool | RemoveGraphicsObject (graphics::GraphicsObject *graphics_object) |
Remove a graphics object. More... | |
bool | RemoveGraphicsObjectByPosition (POSITION position) |
Remove a graphics object by position. More... | |
![]() | |
FS_HANDLE | Handle () const |
Get the handle of current object. More... | |
A PDF page is defined in PDF coordinate system which uses the lower-left corner of the page as origin point (0, 0).
Usually, a PDF page object is retrieved from a PDF document by function PDFDoc::GetPage. For most case, a PDF page should be parsed first and then be used. Function PDFPage::IsParsed can be used to judge whether the PDF page has been parsed or not. For a unparsed page, please use function PDFPage::StartParse to parse it.
This class offers functions to get/set data of a PDF page, such as page width/height, page rotation, display matrix and so on. Also, this class offers functions to retrieve PDF annotations:
Class pdf::PDFPage is derived from class pdf::GraphicsObjects, so class PDFPage also offers functions to retrieve PDF graphics objects:
This class object can also be used to construct objects of other classes in order to access specified information in PDF page:
Enumeration for page box type.
Values of this enumeration should be used alone.
Enumeration for page size type.
Values of this enumeration should be used alone.
foxit::pdf::PDFPage::PDFPage | ( | const PDFDoc & | document, |
objects::PDFDictionary * | page_dict | ||
) |
Constructor, from a PDF dictionary which represents a PDF page and the PDF document which contains the dictionary..
[in] | document | A valid PDF document. |
[in] | page_dict | A PDF dictionary of a PDF page. It should belong to the PDF document specified by parameter document. |
|
explicit |
Constructor, with parent class object.
[in] | other | Parent class object. |
annots::Annot foxit::pdf::PDFPage::AddAnnot | ( | annots::Annot::Type | type, |
const RectF & | rect | ||
) |
Add an annotation to PDF page.
Currently, this function can support to add most annotation types except:
Widget, Sound, Movie, PrinterMark, TrapNet, Watermark, 3D, PSInk, Redact.
Attention:
[in] | type | The type of annotation to be added. Please refer to values starting from annots::Annot::e_Note and this should be one of these values except annots::Annot::e_PSInk, annots::Annot::e_Sound, annots::Annot::e_Movie, annots::Annot::e_Widget, annots::Annot::e_PrinterMark, annots::Annot::e_TrapNet, annots::Annot::e_Watermark, annots::Annot::e_3D. |
[in] | rect | Rectangle of the new annotation.
|
bool foxit::pdf::PDFPage::AddImage | ( | const common::Image & | image, |
int | frame_index, | ||
const PointF & | position, | ||
float | width, | ||
float | height, | ||
bool | auto_generate_content = true |
||
) |
Add an image to current page.
If the type of image is common::Image::e_JPG, the image should be kept valid until the related document is closed.
[in] | image | An image. One of its frames will be set to current page. This image contains at least one frame and the image type should not be common::Image::e_Unknown. |
[in] | frame_index | Frame index. Valid range: from 0 to (count-1). count is returned by function common::Image::GetFrameCount. |
[in] | position | A specified position, in PDF coordinate system. |
[in] | width | The width which is used for the image to set into page. The value should be larger than 0. |
[in] | height | The height which is used for the image to set into page. The value should be larger than 0. |
[in] | auto_generate_content | true means to generate content internally. When using false, user should ensure to call function GraphicsObjects::GenerateContent after adding image. Please refer to function GraphicsObjects::GenerateContent for more details. Default value: true. |
bool foxit::pdf::PDFPage::AddImageFromFilePath | ( | const char * | file_path, |
const PointF & | position, | ||
float | width, | ||
float | height, | ||
bool | auto_generate_content = true |
||
) |
Add an image to current page from file path.
If input image (specified by file path) has more than one frame, only the first frame will be added to current page acquiescently.
[in] | file_path | A full path of an existing image file. It should not be an empty string. |
[in] | position | A specified position, in PDF coordinate system. |
[in] | width | The width which is used for the image to set into page. The value should be larger than 0. |
[in] | height | The height which is used for the image to set into page. The value should be larger than 0. |
[in] | auto_generate_content | true means to generate content internally. When using false, user should ensure to call function GraphicsObjects::GenerateContent after adding image. Please refer to function GraphicsObjects::GenerateContent for more details. Default value: true. |
bool foxit::pdf::PDFPage::AddImageFromFilePath | ( | const wchar_t * | file_path, |
const PointF & | position, | ||
float | width, | ||
float | height, | ||
bool | auto_generate_content = true |
||
) |
Add an image to current page from file path.
If input image (specified by file path) has more than one frame, only the first frame will be added to current page acquiescently.
[in] | file_path | A full path of an existing image file. It should not be an empty string. |
[in] | position | A specified position, in PDF coordinate system. |
[in] | width | The width which is used for the image to set into page. The value should be larger than 0. |
[in] | height | The height which is used for the image to set into page. The value should be larger than 0. |
[in] | auto_generate_content | true means to generate content internally. When using false, user should ensure to call function GraphicsObjects::GenerateContent after adding image. Please refer to function GraphicsObjects::GenerateContent for more details. Default value: true. |
foxit::pdf::Signature foxit::pdf::PDFPage::AddSignature | ( | const foxit::RectF & | rect | ) |
Add an ordinary signature to PDF page.
For a new ordinary signature, its filter will be "Adobe.PPKLite" and sub filter will be "adbe.pkcs7.detached" by default. Please refer to class Signature for more details about signature's filter and sub-filter.
Before signing the new signature, user can also call setting functions of class Signature to set other information used for signing and signed appearance.
[in] | rect | Rectangle position for the new signature, in PDF coordinate system. It should be a valid rectangle in PDF coordinate system. |
foxit::pdf::Signature foxit::pdf::PDFPage::AddSignature | ( | const foxit::RectF & | rect, |
const foxit::WString & | field_name | ||
) |
Add an ordinary signature to PDF page.
For a new ordinary signature, its filter will be "Adobe.PPKLite" and sub filter will be "adbe.pkcs7.detached" by default. Please refer to class Signature for more details about signature's filter and sub-filter.
Before signing the new signature, user can also call setting functions of class Signature to set other information used for signing and signed appearance.
[in] | rect | Rectangle position for the new signature, in PDF coordinate system. It should be a valid rectangle in PDF coordinate system. |
[in] | field_name | The signature field name. This can be an empty string. |
foxit::pdf::Signature foxit::pdf::PDFPage::AddSignature | ( | const foxit::RectF & | rect, |
const foxit::WString & | field_name, | ||
foxit::pdf::Signature::SignatureType | signature_type | ||
) |
Add a signature to PDF page.
For a new ordinary signature, its filter will be "Adobe.PPKLite" and sub filter will be "adbe.pkcs7.detached" by default. For a new time stamp signature, its fileter will be "Adobe.PPKLite" and sub filter will be "ETSI.RFC3161" by default. Please refer to class Signature for more details about signature's filter and sub-filter.
Before signing the new signature, user can also call setting functions of class Signature to set other information used for signing and signed appearance.
[in] | rect | Rectangle position for the new signature, in PDF coordinate system. If parameter signature_type is Signature::e_SignatureTypeTimeStamp, this rectangle will be ignored; otherwise, this should be a valid rectangle in PDF coordinate system. |
[in] | field_name | The signature field name. This can be an empty string. |
[in] | signature_type | Signature type. Please refer to values starting from Signature::e_SignatureTypeOrdinary and this should be one of these values. |
RectF foxit::pdf::PDFPage::CalcContentBBox | ( | CalcMarginMode | mode | ) |
Calculate the content area of PDF page.
Before using this function, please ensure current page has been parsed.
[in] | mode | Calculation mode. It should be one of following values:
|
void foxit::pdf::PDFPage::ClearRenderCache | ( | ) |
Clear render cache.
bool foxit::pdf::PDFPage::Flatten | ( | bool | for_display, |
uint32 | options = PDFPage::e_FlattenAll |
||
) |
Flatten current PDF page: annotations or form fields may be made to be a part of the page contents according to specified options.
Annotation flag can decide if an annotation can be displayed or if an annotation can be printed. This also affects the flattened result:
Form field's appearance is represents by widget annotation which is a kind of annotation and treated as form control in Foxit PDF SDK. So annotation flag affects a form field as well when a form field is to be flattened. For more details about annotation flag, please refer to values starting from annots::Annot::e_FlagInvisible and Section 8.4.2 "Annotation Flags" in <PDF Reference 1.7>.
After an annotation or a form field is flattened, it will not be an annotation or a form field any more. After flattening current page successfully, user should re-parse this page by function PDFPage::StartParse.
[in] | for_display | Decide the purpose of the flattened result: true means the flatten result is used for display only, and false means the flatten result is used for print only. |
[in] | options | The flatten options. Please refer to values starting from PDFPage::e_FlattenAll and this should one or a combination of them. Specially, if PDFPage::e_FlattenNoAnnot and PDFPage::e_FlattenNoFormControl are used together, that means nothing is to be flatten to page and this function will return true directly. Default value: PDFPage::e_FlattenAll. |
bool foxit::pdf::PDFPage::FlattenAnnot | ( | annots::Annot | annot | ) |
Flatten an annotation: the annotation is made to be a part of the page contents and be removed then.
After flattening the annotation successfully, user should re-parse this page by function PDFPage::StartParse.
[in] | annot | An annotation to be flattened and removed. |
annots::Annot foxit::pdf::PDFPage::GetAnnot | ( | int | index | ) |
Get an annotation by index.
[in] | index | Annotation index. Valid range: from 0 to (count-1). count is returned by function PDFPage::GetAnnotCount. |
annots::Annot foxit::pdf::PDFPage::GetAnnotAtDevicePoint | ( | const PointF & | position, |
float | tolerance, | ||
const Matrix * | matrix = 0 |
||
) |
Get the annotation at a specified position, in device coordination system.
If there are several annotations in this specified position, this function will always return the topmost annotation. Annotations with flag annots::Annot::e_FlagNoView or annots::Annot::e_FlagReadOnly or annots::Annot::e_FlagHidden or annots::Annot::e_FlagInvisible will not be retrieved by this function.
[in] | position | The specified position, in device coordinate system. |
[in] | tolerance | Tolerance value. Valid range: 0.0f to 30.0f. |
[in] | matrix | The transformation matrix. Usually this is returned by function PDFPage::GetDisplayMatrix. If this is NULL, current function will have the same feature as function PDFPage::GetAnnotAtPoint. Default value: NULL. |
annots::Annot foxit::pdf::PDFPage::GetAnnotAtPoint | ( | const PointF & | position, |
float | tolerance | ||
) |
Get the annotation at a specified position, in PDF coordinate system.
If there are several annotations in this specified position, this function will always return the topmost annotation. Annotations with flag annots::Annot::e_FlagNoView or annots::Annot::e_FlagReadOnly or annots::Annot::e_FlagHidden or annots::Annot::e_FlagInvisible will not be retrieved by this function.
[in] | position | The specified position, in PDF coordinate system. |
[in] | tolerance | Tolerance value. Valid range: 0.0f to 30.0f. |
int foxit::pdf::PDFPage::GetAnnotCount | ( | ) |
Get the count of annotations.
objects::PDFArray* foxit::pdf::PDFPage::GetAnnots | ( | ) | const |
Get the PDF array of "Annots".
Get page box.
[in] | box_type | Page box type. Please refer to values starting from PDFPage::e_MediaBox and this should be one of these values. |
objects::PDFObject* foxit::pdf::PDFPage::GetContents | ( | ) | const |
Get the PDF object of "Contents".
objects::PDFDictionary* foxit::pdf::PDFPage::GetDict | ( | ) | const |
Get the page dictionary.
Matrix foxit::pdf::PDFPage::GetDisplayMatrix | ( | int | left, |
int | top, | ||
int | width, | ||
int | height, | ||
common::Rotation | rotate | ||
) |
Get the display matrix of PDF page, from PDF coordinate system to targeted device coordinate system.
[in] | left | Left position of the transformation area in device coordinate system, commonly in pixels. |
[in] | top | Top position of the transformation area in device coordinate system, commonly in pixels. |
[in] | width | Width of the transformation area in device coordinate system, commonly in pixels. |
[in] | height | Height of the transformation area in device coordinate system, commonly in pixels. |
[in] | rotate | Rotation value. Please refer to values starting from common::e_Rotation0 and this should be one of these values except common::e_RotationUnknown. |
PDFDoc foxit::pdf::PDFPage::GetDocument | ( | ) | const |
Get the PDF document, to which current PDF page belongs.
graphics::GraphicsObject* foxit::pdf::PDFPage::GetGraphicsObjectAtDevicePoint | ( | const PointF & | point, |
float | tolerance, | ||
const Matrix * | matrix, | ||
graphics::GraphicsObject::Type | filter = graphics::GraphicsObject::e_TypeAll |
||
) | const |
Get the topmost graphics object in specified point in device coordinate system, with specified type filter.
[in] | point | A specified position, in device coordinate system. |
[in] | tolerance | Tolerance value for a graphics object hit detection, in point units. It should be positive. |
[in] | matrix | The transformation matrix. Usually this is returned by function PDFPage::GetDisplayMatrix. Default value: NULL. |
[in] | filter | Type filter that specifies which kind of graphics object is to be gotten. Please refer to values starting from graphics::GraphicsObject::e_TypeAll and this should be one of these values. graphics::GraphicsObject::e_TypeAll means for all kinds of graphics objects. Default value: graphics::GraphicsObject::e_TypeAll. |
graphics::GraphicsObject* foxit::pdf::PDFPage::GetGraphicsObjectAtPoint | ( | const PointF & | point, |
float | tolerance, | ||
graphics::GraphicsObject::Type | filter = graphics::GraphicsObject::e_TypeAll |
||
) | const |
Get the topmost graphics object in specified point, with specified type filter.
[in] | point | A specified position, in PDF coordinate system. |
[in] | tolerance | Tolerance value for a graphics object hit detection, in point units. It should be positive. |
[in] | filter | Type filter that specifies which kind of graphics object is to be gotten. Please refer to values starting from graphics::GraphicsObject::e_TypeAll and this should be one of these values. graphics::GraphicsObject::e_TypeAll means for all kinds of graphics objects. Default value: graphics::GraphicsObject::e_TypeAll. |
graphics::GraphicsObject* foxit::pdf::PDFPage::GetGraphicsObjectAtRectangle | ( | const RectF & | rect, |
graphics::GraphicsObject::Type | filter = graphics::GraphicsObject::e_TypeAll |
||
) | const |
Get the topmost graphics object whose rectangle interasects with a specified rectangle, with specified type filter.
[in] | rect | A specified rectangle, in PDF coordinate system. |
[in] | filter | Type filter that specifies which kind of graphics object is to be gotten. Please refer to values starting from graphics::GraphicsObject::e_TypeAll and this should be one of these values. graphics::GraphicsObject::e_TypeAll means for all kinds of graphics objects. Default value: graphics::GraphicsObject::e_TypeAll. |
graphics::GraphicsObjectArray foxit::pdf::PDFPage::GetGraphicsObjectsAtDevicePoint | ( | const PointF & | point, |
float | tolerance, | ||
const Matrix * | matrix, | ||
graphics::GraphicsObject::Type | filter = graphics::GraphicsObject::e_TypeAll |
||
) |
Get all the graphics objects in specified point in device coordinate system, with specified type filter.
[in] | point | A specified position, in device coordinate system. |
[in] | tolerance | Tolerance value for a graphics object hit detection, in point units. It should be positive. |
[in] | matrix | The transformation matrix. Usually this is returned by function PDFPage::GetDisplayMatrix. Default value: NULL. |
[in] | filter | Type filter that specifies which kind of graphics object is to be gotten. Please refer to values starting from graphics::GraphicsObject::e_TypeAll and this should be one of these values. graphics::GraphicsObject::e_TypeAll means for all kinds of graphics objects. Default value: graphics::GraphicsObject::e_TypeAll. |
graphics::GraphicsObjectArray foxit::pdf::PDFPage::GetGraphicsObjectsAtPoint | ( | const PointF & | point, |
float | tolerance, | ||
graphics::GraphicsObject::Type | filter = graphics::GraphicsObject::e_TypeAll |
||
) |
Get all the graphics objects in specified point, with specified type filter.
[in] | point | A specified position, in PDF coordinate system. |
[in] | tolerance | Tolerance value for a graphics object hit detection, in point units. It should be positive. |
[in] | filter | Type filter that specifies which kind of graphics object is to be gotten. Please refer to values starting from graphics::GraphicsObject::e_TypeAll and this should be one of these values. graphics::GraphicsObject::e_TypeAll means for all kinds of graphics objects. Default value: graphics::GraphicsObject::e_TypeAll. |
graphics::GraphicsObjectArray foxit::pdf::PDFPage::GetGraphicsObjectsAtRectangle | ( | const RectF & | rect, |
graphics::GraphicsObject::Type | filter = graphics::GraphicsObject::e_TypeAll |
||
) |
Get all the graphics objects whose rectangles intersect with a specified rectangle, with specified type filter.
[in] | rect | A specified rectangle, in PDF coordinate system. |
[in] | filter | Type filter that specifies which kind of graphics object is to be gotten. Please refer to values starting from graphics::GraphicsObject::e_TypeAll and this should be one of these values. graphics::GraphicsObject::e_TypeAll means for all kinds of graphics objects. Default value: graphics::GraphicsObject::e_TypeAll. |
float foxit::pdf::PDFPage::GetHeight | ( | ) | const |
Get the page height.
int foxit::pdf::PDFPage::GetIndex | ( | ) | const |
Get page index.
objects::PDFObject* foxit::pdf::PDFPage::GetInheritedAttribute | ( | const char * | attruibute_name | ) | const |
Get the PDF object for specified attribute which may be inherited from the ancestor node in the page tree.
Some of the page attributes are designated as inheritable, such as "Resources", "MediaBox", "CropBox", and "Rotate". Please refer to "TABLE 3.27 Entries in a page object" in <PDF Reference 1.7> P145 and "Inheritance of Page Attributes" in <PDF Reference 1.7> P149 for more details.
[in] | attruibute_name | The name of attribute to be found. |
objects::PDFDictionary* foxit::pdf::PDFPage::GetResources | ( | ) | const |
Get the PDF dictionary of "Resources".
common::Rotation foxit::pdf::PDFPage::GetRotation | ( | ) | const |
Get the page rotation.
objects::PDFStream* foxit::pdf::PDFPage::GetThumb | ( | ) | const |
Get the PDF stream of "Thumb".
float foxit::pdf::PDFPage::GetUserUnitSize | ( | ) | const |
Get the user unit.
A positive number giving the size of default user space units, in multiples of 1/72 inch. The range of supported values is implementation-dependent.
float foxit::pdf::PDFPage::GetWidth | ( | ) | const |
Get the page width.
bool foxit::pdf::PDFPage::HasTransparency | ( | ) |
Check whether current PDF page has transparency or not.
Before using this function, please ensure current page has been parsed.
bool foxit::pdf::PDFPage::HasWatermark | ( | ) |
Check whether the current page has any watermark (not including Foxit PDF SDK trial watermark).
Before using this function, please ensure current page has been parsed.
bool foxit::pdf::PDFPage::IsParsed | ( | ) | const |
Check if current page has been parsed or not.
common::Bitmap foxit::pdf::PDFPage::LoadThumbnail | ( | ) |
Load the thumbnail bitmap.
void foxit::pdf::PDFPage::MoveAnnotToFirst | ( | const annots::Annot & | annot | ) |
Change specified annotation to be the first one of all annotations.
In PDF page, all the annotations are managed in an annotation list. In the annotation list, annotations with small indexes (as in the font part of the list) will be drawn to the page first, and annotations with large indexes (as in the last part of the list) will be drawn to the page later. So, in a page, if an annotation is shown on the top of other annotations in z-order, that means its index is larger than other annotations in the annotation list.
This function is used to move an annotation from current index position to the first position in the annotation list, in order to move the annotation to the bottom in z-order when displayed.
[in] | annot | An annotation object to be moved to first. It should be in current PDF page. |
void foxit::pdf::PDFPage::MoveAnnotToLast | ( | const annots::Annot & | annot | ) |
Change specified annotation to be the last one of all annotations.
In PDF page, all the annotations are managed in an annotation list. In the annotation list, annotations with small indexes (as in the font part of the list) will be drawn to the page first, and annotations with large indexes (as in the last part of the list) will be drawn to the page later. So, in a page, if an annotation is shown on the top of other annotations in z-order, that means its index is larger than other annotations in the annotation list.
This function is used to move an annotation from current index position to the last position in the annotation list, in order to move the annotation to the top in z-order when displayed.
[in] | annot | An annotation object to be moved to last. It should be in current PDF page. |
void foxit::pdf::PDFPage::MoveAnnotToNext | ( | const annots::Annot & | annot | ) |
Exchange the indexes of current annotation and its next annotation.
In PDF page, all the annotations are managed in an annotation list. In the annotation list, annotations with small indexes (as in the font part of the list) will be drawn to the page first, and annotations with large indexes (as in the last part of the list) will be drawn to the page later. So, in a page, if an annotation is shown on the top of other annotations in z-order, that means its index is larger than other annotations in the annotation list.
This function is used to exchange the indexes position of current annotation and its next annotation in the annotation list, in order to move the annotation to a lower level in z-order when displayed.
[in] | annot | An annotation object to be moved. It should be in current PDF page. |
void foxit::pdf::PDFPage::MoveAnnotToPrev | ( | const annots::Annot & | annot | ) |
Exchange the indexes of current annotation and its previous annotation.
In PDF page, all the annotations are managed in an annotation list. In the annotation list, annotations with small indexes (as in the font part of the list) will be drawn to the page first, and annotations with large indexes (as in the last part of the list) will be drawn to the page later. So, in a page, if an annotation is shown on the top of other annotations in z-order, that means its index is larger than other annotations in the annotation list.
This function is used to exchange the indexes position of current annotation and its previous annotation in the annotation list, in order to move the annotation to a lower level in z-order when displayed.
[in] | annot | An annotation object to be moved. It should be in current PDF page. |
bool foxit::pdf::PDFPage::RemoveAllWatermarks | ( | ) |
Remove all watermarks.
Before using this function, please ensure current page has been parsed.
bool foxit::pdf::PDFPage::RemoveAnnot | ( | const annots::Annot & | annot | ) |
Remove an annotation.
This function can remove any annotation returned by getting function or adding function.
But for widget annotation, this function can only remove an independent widget annotation. If the widget annotation is associated with a form field, this function cannot remove it and will throw exception foxit::e_ErrUnsupported.
For a widget annotation associated with a form field, please call function interform::Form::RemoveControl to remove it along with associated form control.
[in] | annot | An annotation object to be removed. It should be in current PDF page. |
bool foxit::pdf::PDFPage::SetAnnotGroup | ( | const annots::MarkupArray & | annot_array, |
int | header_index | ||
) |
Group all the input markup annotations together.
Markup annotations can be grouped. The group consists of a primary annotation and one or more subordinate annotations. Some entries in the primary annotation are treated as group attributes that should apply to the group as a whole; the corresponding entries in the subordinate annotations should be ignored. These entries are contents, last modification time, fill color/border color, title, pop-up annotation, creation time, subject, and open status. So user should respect the group property: when a property of an annotation in the group is changed, the other annotations in the same group should be changed too.
Operations that manipulate any annotation in a group, such as movement, cut, and copy, should be treated by viewer applications as acting on the entire group.
[in] | annot_array | An array of Markup objects that specifies markup annotations which are to be grouped together. This array should contains at least 2 markup annotations, and all the markup annotations in this array should be different from others. All the markup annotations in this array should be in current page. Specially, if a markup annotation in this array is already in another group, that group will be set to the new group with the new header as well. |
[in] | header_index | The index that specifies a markup annotation in parameter annot_array to be the header of the group. Valid range: from 0 to (ammot_count -1). |
Set page box.
[in] | box_type | Page box type. Please refer to values starting from PDFPage::e_MediaBox and this should be one of these values. |
[in] | box | New box rectangle, in PDF coordinate system. |
void foxit::pdf::PDFPage::SetClipRect | ( | const RectF & | clip_rect | ) |
Set clip rectangle for all graphics objects on current PDF page.
After this function finishes successfully, please re-parse current page by function PDFPage::StartParse with parameter is_reparse true.
[in] | clip_rect | New clip rectangle, in PDF coordinate system. |
void foxit::pdf::PDFPage::SetRotation | ( | common::Rotation | rotate | ) |
Set page rotation.
[in] | rotate | New page rotation value. Please refer to values starting from common::e_Rotation0 and this should be one of these values except common::e_RotationUnknown. |
void foxit::pdf::PDFPage::SetSize | ( | float | width, |
float | height | ||
) |
Set page width and height.
When changing page width/height, Foxit PDF SDK will always do as following:
First, choose "page rotation is 0" as the basis page status and choose the left-bottom corner of the page (with page rotation is 0) as the basis point. And then, always change the position of top page boundary and right page boundary (with page rotation is 0) to change page size.
[in] | width | New page width. It should be a positive value and the unit is 1/72 inch. |
[in] | height | New page height. It should be a positive value and the unit is 1/72 inch. |
void foxit::pdf::PDFPage::SetSize | ( | foxit::pdf::PDFPage::Size | size | ) |
Set page size type.
When changing page size, Foxit PDF SDK will always do as following:
First, choose "page rotation is 0" as the basis page status and choose the left-bottom corner of the page (with page rotation is 0) as the basis point. And then, always change the position of top page boundary and right page boundary (with page rotation is 0) to change page size.
[in] | size | Size type to specify the new size of current page. Please refer to values starting from PDFPage::e_SizeLetter and this should be one of these values. |
void foxit::pdf::PDFPage::SetThumbnail | ( | const common::Bitmap & | thumbnail | ) |
Set page thumbnail.
Thumbnail bitmap does not use alpha channel. So user is recommended to set a bitmap without alpha channel to be the new thumbnail. If a bitmap with alpha channel is set, the new thumbnail will use white background by default.
[in] | thumbnail | New page thumbnail. It should be a valid bitmap. |
void foxit::pdf::PDFPage::SetUserUnitSize | ( | float | user_unit | ) |
Set the user unit.
A positive number giving the size of default user space units, in multiples of 1/72 inch. The range of supported values is implementation-dependent. If not set, Foxit PDF SDK will use default value 1.0 (user unit is 1/72 inch).
[in] | user_unit | A positive number giving the size of default user space units, in multiples of 1/72 inch. |
common::Progressive foxit::pdf::PDFPage::StartParse | ( | uint32 | flags = PDFPage::e_ParsePageNormal , |
common::PauseCallback * | pause = 0 , |
||
bool | is_reparse = false |
||
) |
Start to parse current page.
It may take a long time to parsing a PDF page, so Foxit PDF SDK uses a progressive process to do this. All the resources of page content will be loaded after the PDF page is parsed.
[in] | flags | Parsing flags. Please refer to values starting from PDFPage::e_ParsePageNormal and this should be one or a combination of these values. Default value: PDFPage::e_ParsePageNormal. |
[in] | pause | Pause callback object which decides if the parsing process needs to be paused. This can be NULL which means not to pause during the parsing process. If this is not NULL, it should be a valid pause object implemented by user. Default value: NULL. |
[in] | is_reparse | true means to re-parse current page, while false means not to re-parse current page. Default value: false. |
bool foxit::pdf::PDFPage::Transform | ( | const Matrix & | matrix, |
bool | need_transform_clip_path | ||
) |
Transform a PDF page, including annotations and form fields on the page.
[in] | matrix | Transform matrix. |
[in] | need_transform_clip_path | true means to transform the page with clip rectangle, while false means not. |
void foxit::pdf::PDFPage::UpdateAnnotList | ( | ) |
Update the annotation list.
If any annotation is modified(added/removed...) by changing "Annots" dictionary item directly, please call this function to update the annotation list after the changing.