Public Member Functions | |
PSI (common::Bitmap &bitmap, bool simulate) | |
Constructor, with a bitmap as canvas. More... | |
PSI (int width, int height, bool simulate) | |
Constructor, with specified width and height for canvas. More... | |
PSI (const PSI &other) | |
Constructor, with another PSI object. More... | |
~PSI () | |
Destructor. | |
void | AddPoint (const PointF &point, common::Path::PointType type, float pressure) |
Add a point. More... | |
annots::PSInk | ConvertToPDFAnnot (const PDFPage &page, const RectF &annot_rect, common::Rotation rotate) |
Convert a PSI object to a PSInk annotation and insert the PSInk annotation to a PDF page. More... | |
common::Bitmap | GetBitmap () |
Get the canvas bitmap. More... | |
RectF | GetContentsRect () |
Get contents rectangle. More... | |
bool | IsEmpty () const |
Check whether current object is empty or not. More... | |
bool | operator!= (const PSI &other) const |
Not equal operator. More... | |
PSI & | operator= (const PSI &other) |
Assign operator. More... | |
bool | operator== (const PSI &other) const |
Equal operator. More... | |
void | SetCallback (PSICallback *callback) |
Set a callback object for refreshing. More... | |
void | SetColor (RGB color) |
Set ink color. More... | |
void | SetDiameter (int diameter) |
Set ink diameter. More... | |
void | SetOpacity (float opacity) |
Set ink opacity. More... | |
![]() | |
FS_HANDLE | Handle () const |
Get the handle of current object. More... | |
PSI, "pressure sensitive ink", is specially defined for manual signature, and usually works together with a handwriting board or for a touchscreen. PSI contains private coordinates, and a canvas is created in its coordinates. Canvas limits operating area and generates appearance of PSI.
PSI is independent of PDF, and can even be used directly in the device screen. If user wants to save a PSI object to PDF file, please call function PSI::ConvertToPDFAnnot. This function will convert PSI data to a PSInk annotation (as a Foxit custom annotation type) and insert the PSInk annotation to the specified position in a PDF page.
foxit::pdf::PSI::PSI | ( | common::Bitmap & | bitmap, |
bool | simulate | ||
) |
Constructor, with a bitmap as canvas.
[in] | bitmap | A bitmap used as canvas. It should be created with common::Bitmap::e_DIBArgb format. User should ensure this bitmap to keep valid until current PSI object is released. |
[in] | simulate | Used to decide whether to turn on simulation of PSI or not: true means to turn on simulation, and false means to turn off simulation. It can simulate handwriting weights by writing speed when simulation is on. |
foxit::pdf::PSI::PSI | ( | int | width, |
int | height, | ||
bool | simulate | ||
) |
Constructor, with specified width and height for canvas.
[in] | width | Width of PSI canvas in device coordinate system. This shall be greater than 0. |
[in] | height | Height of PSI canvas in device coordinate system. This shall be greater than 0. |
[in] | simulate | Used to decide whether to turn on simulation of PSI or not: true means to turn on simulation, and false means to turn off simulation. It can simulate handwriting weights by writing speed when simulation is on. |
foxit::pdf::PSI::PSI | ( | const PSI & | other | ) |
void foxit::pdf::PSI::AddPoint | ( | const PointF & | point, |
common::Path::PointType | type, | ||
float | pressure | ||
) |
Add a point.
[in] | point | A point in canvas coordinate system. |
[in] | type | Point type. Please refer to values starting from common::Path::e_TypeMoveTo and this should be one of these values. |
[in] | pressure | Pressure value for this point. Valid range: from 0.0 to 1.0. |
annots::PSInk foxit::pdf::PSI::ConvertToPDFAnnot | ( | const PDFPage & | page, |
const RectF & | annot_rect, | ||
common::Rotation | rotate | ||
) |
Convert a PSI object to a PSInk annotation and insert the PSInk annotation to a PDF page.
Actually, this function is to convert the path data of current PSI to a PSInk annotation, ignoring the canvas bitmap.
Before calling this function, user should ensure that current PSI object has contained a valid path (whose last point's type is common::Path::e_TypeLineToCloseFigure. Otherwise, the conversion will be failed and this function will throw exception foxit::e_ErrInvalidData.
[in] | page | A valid PDF page object, to which the PSI is expected to inserted. |
[in] | annot_rect | A rectangle to specify the position in the PDF page, where the new PSInk annotation will be inserted. It should be valid in PDF coordinate system. |
[in] | rotate | Rotation value. Currently, it can only be common::e_Rotation0. |
common::Bitmap foxit::pdf::PSI::GetBitmap | ( | ) |
Get the canvas bitmap.
RectF foxit::pdf::PSI::GetContentsRect | ( | ) |
Get contents rectangle.
bool foxit::pdf::PSI::IsEmpty | ( | ) | const |
Check whether current object is empty or not.
When the current object is empty, that means current object is useless.
bool foxit::pdf::PSI::operator!= | ( | const PSI & | other | ) | const |
Not equal operator.
[in] | other | Another PSI object. This function will check if current object is not equal to this one. |
Assign operator.
[in] | other | Another PSI object, whose value would be assigned to current object. |
bool foxit::pdf::PSI::operator== | ( | const PSI & | other | ) | const |
Equal operator.
[in] | other | Another PSI object. This function will check if current object is equal to this one. |
void foxit::pdf::PSI::SetCallback | ( | PSICallback * | callback | ) |
Set a callback object for refreshing.
[in] | callback | A callback object PSICallback which is implemented by user. Please ensure that the callback object keeps valid until the life-cycle of current PSI object ends. |
void foxit::pdf::PSI::SetColor | ( | RGB | color | ) |
Set ink color.
This should be set before adding first point to PSI object. If not set, the default value 0x000000 will be used.
[in] | color | Ink color. Format: 0xRRGGBB. |
void foxit::pdf::PSI::SetDiameter | ( | int | diameter | ) |
Set ink diameter.
This should be set before adding first point to PSI object. If not set, the default value 10 will be used.
[in] | diameter | Ink diameter. This should be bigger than 1. |
void foxit::pdf::PSI::SetOpacity | ( | float | opacity | ) |
Set ink opacity.
This should be set before adding first point to PSI object. If not set, the default value 1.0 will be used.
[in] | opacity | Ink opacity. Valid range: from 0.0 to 1.0. 0.0 means full transparency and 1.0 means full opaque. |