|
#include <PDFView.h>
Public Types | |
| enum | PageViewMode { e_fit_page = 0, e_fit_width, e_zoom } |
| PageViewMode lists common modes of viewing PDF pages. More... | |
| enum | PagePresentationMode { e_single_page = 1, e_single_continuous, e_facing, e_facing_continuous } |
| PagePresentationMode lists common modes of presenting PDF pages. More... | |
| enum | ToolMode { e_pan = 1, e_text_rect_select, e_text_struct_select, e_custom } |
| PDFView class supports a number of 'built-in' tool modes. More... | |
| typedef void(* | CurrentPageProc )(int current_page, int num_pages, void *data) |
| A prototype for a callback function (or a delegate in .NET terminology) that will be called whenever current page number changes. | |
| typedef void(* | RenderBeginEventProc )(void *data) |
| Declaration for the callback function that will be called just before PDFView starts rendering. | |
| typedef void(* | RenderFinishEventProc )(void *data, bool canceled) |
| Declaration for the callback function that will be called after PDFView is done with rendering. | |
Public Member Functions | |
| PDFView () | |
| PDFView constructor and destructor. | |
| ~PDFView () | |
| void | SetDoc (PDFDoc &doc) |
| Associates this PDFView with a given PDF document. | |
| PDFDoc * | GetDoc () |
| |
| void | SetPageViewMode (PageViewMode mode) |
| Sets the page viewing mode. | |
| PageViewMode | GetPageViewMode () |
| |
| void | SetPagePresentationMode (PagePresentationMode mode) |
| Sets the current page presentation mode. | |
| PagePresentationMode | GetPagePresentationMode () |
| |
| int | GetCurrentPage () |
| |
| int | GetPageCount () |
| |
| bool | GotoFirstPage () |
| Sets the current page to the first page in the document. | |
| bool | GotoLastPage () |
| Sets the current page to the last page in the document. | |
| bool | GotoNextPage () |
| Sets the current page to the next page in the document. | |
| bool | GotoPreviousPage () |
| Sets the current page to the previous page in the document. | |
| bool | SetCurrentPage (int page_num) |
| Sets the current page to the given page. | |
| double | GetZoom () |
| Gets the current zoom factor. | |
| bool | SetZoom (double zoom) |
| Sets the zoom factor to a new value. | |
| bool | SetZoom (int x, int y, double zoom) |
| Sets the zoom factor to a new value using the given pixel coordinate (x,y) as a zoom center. | |
| void | RotateClockwise () |
| Rotates all pages in the document 90 degrees clockwise. | |
| void | RotateCounterClockwise () |
| Rotates all pages in the document 90 degrees counter-clockwise. | |
| int | GetPageNumberFromScreenPt (double x, double y) |
| |
| void | ConvScreenPtToCanvasPt (double &x, double &y) |
| Converts a point expressed in screen coordinates to a point on canvas. | |
| void | ConvCanvasPtToScreenPt (double &x, double &y) |
| Converts a point expressed in canvas coordinates to a point on screen. | |
| void | ConvCanvasPtToPagePt (double &x, double &y, int page_num=-1) |
| Converts a point expressed in canvas coordinates to a point on a given page. | |
| void | ConvPagePtToCanvasPt (double &x, double &y, int page_num=-1) |
| Converts a point from a coordinate system of a given page to a point on canvas. | |
| void | ConvScreenPtToPagePt (double &x, double &y, int page_num=-1) |
| Converts a point expressed in screen coordinates to a point on a given page. | |
| void | ConvPagePtToScreenPt (double &x, double &y, int page_num=-1) |
| Converts a point from a coordinate system of a given page to a point on screen. | |
| Common::Matrix2D | GetDeviceTransform (int page_num=-1) |
| |
| void | SetErrorReportProc (PDFRasterizer::ErrorReportProc error_proc, void *data) |
| Sets the error handling function to be called in case an error is encountered during page rendering. | |
| void | SetCurrentPageProc (CurrentPageProc curr_pagenum_proc, void *data) |
| Sets the callback function (i.e. | |
| double | GetCanvasWidth () |
| Gets the current canvas width. | |
| double | GetCanvasHeight () |
| Gets the current canvas height. | |
| double | GetHScrollPos () |
| |
| double | GetVScrollPos () |
| |
| void | OnScroll (int pix_dx, int pix_dy) |
| Scrolls the contents of the rendering buffer 'pix_dx' horizontally and 'pix_dy' vertically. | |
| void | SetHScrollPos (double pos) |
| Sets the horizontal scroll position. | |
| void | SetVScrollPos (double pos) |
| Sets the vertical scroll position. | |
| void | OnSize (int width, int height, int stride) |
| Resize rendering buffer to new dimensions. | |
| bool | IsFinishedRendering () |
| |
| void | CancelRendering () |
| Cancels rendering in progress. | |
| void | Update () |
| Redraws the contents of the buffer. | |
| const char * | GetBuffer () |
| Gets the pointer to the internal memory buffer containing the rasterized image of the given page. | |
| int | GetBufferWidth () |
| Gets the width of the rendering buffer in pixels. | |
| int | GetBufferHeight () |
| Gets the width of the rendering buffer in pixels. | |
| int | GetBufferStride () |
| Gets the stride of the rendering buffer in pixels. | |
| void | InvalidateRect (const Rect *rect=0) |
| The InvalidateRect function adds a rectangle to the buffer/window update region. | |
| void | SetDrawAnnotations (bool render_annots) |
| Enable or disable annotation and forms rendering. | |
| void | SetAntiAliasing (bool enable_aa) |
| Enable or disable anti-aliasing. | |
| void | SetImageSmoothing (bool smoothing_enabled=true) |
| Enable or disable image smoothing. | |
| void | SetCaching (bool enabled) |
| Enables of disables caching. | |
| void | SetRasterizerType (PDFRasterizer::Type type) |
| Sets the core graphics library used for rasterization and rendering. | |
| void | SetGamma (double exp) |
| Sets the gamma factor used for anti-aliased rendering. | |
| void | SetOCGContext (const OCG::Context &ctx) |
| Sets the Optional Content Group (OCG) context that should be used when viewing the document. | |
| OCG::Context | GetOCGContext () |
|
| |
| void | SetRenderBeginProc (RenderBeginEventProc proc, void *data) |
| Set a callback function that can be used to notify the client that PDFView is about to start rendering and modifying the contents of the rendering buffer. | |
| void | SetRenderFinishProc (RenderFinishEventProc proc, void *data) |
| Set a callback function that can be used to notify the client that PDFView finished rendering and modifying the contents of the rendering buffer. | |
| void | SetToolMode (ToolMode mode) |
| Sets the new tool mode (such as pan, text select, etc). | |
| ToolMode | GetToolMode () |
| |
| bool | SelectByRect (double x1, double y1, double x2, double y2) |
| Selects all words that intersect the given selection rectangle. | |
| bool | SelectByStruct (double x1, double y1, double x2, double y2) |
| Selects text taking into account page logical structure. | |
| bool | FindText (const UString &search_str, bool match_case=false, bool match_whole_word=false, bool search_up=false) |
| Selects text by searching for a given string of text. | |
| void | SelectAll () |
| Selects all text on the page. | |
| bool | HasSelection () |
| |
| void | ClearSelection () |
| Remove any text selection. | |
| PDFView::Selection | GetSelection () |
| |
| void | SetPageBorderVisibility (bool border_visible) |
| Enables or disables drawing of a thin border around each page. | |
| void | SetDefaultPageColor (UInt8 r, UInt8 g, UInt8 b) |
| Sets the default 'paper' color used to draw background of each page. | |
| void | SetBackgroundColor (UInt8 r, UInt8 g, UInt8 b) |
| Sets the default background color used to paint the area surrounding each page. | |
| void | SetHorizontalAlign (int align) |
| Sets the horizontal alignment used for rendering pages within the view. | |
| void | SetVerticalAlign (int align) |
| Sets the vertical alignment used for rendering pages within the view. | |
Classes | |
| class | Selection |
| A class representing the current text selection. More... | |
In .NET environment PDFView is derived from System.Windows.Forms.Control and it can be used like a regular form (see PDFViewForm.cs in PDFView sample for C# for a concrete example).
PDFView implements some essential features such as double-buffering, multi-threaded rendering, scrolling, zooming, and page navigation that are essential in interactive rendering applications (e.g. in client PDF viewing and editing applications).
| typedef void(* pdftron::PDF::PDFView::CurrentPageProc)(int current_page, int num_pages, void *data) |
A prototype for a callback function (or a delegate in .NET terminology) that will be called whenever current page number changes.
| current_page | the current page. | |
| num_pages | total number of pages in the document. | |
| data | Custom data to be passed as a second parameter to 'curr_pagenum_proc'. |
| typedef void(* pdftron::PDF::PDFView::RenderBeginEventProc)(void *data) |
Declaration for the callback function that will be called just before PDFView starts rendering.
| data | Custom data to be passed as a parameter to 'proc'. |
| typedef void(* pdftron::PDF::PDFView::RenderFinishEventProc)(void *data, bool canceled) |
Declaration for the callback function that will be called after PDFView is done with rendering.
| data | Custom data to be passed as a parameter to 'proc'. | |
| canceled | - this parameter is false if PDFView successfully completed the rendering, or is true if the rendering was canceled. |
PageViewMode lists common modes of viewing PDF pages.
PDFView currently supports the following viewing modes:
PagePresentationMode lists common modes of presenting PDF pages.
PDFView currently supports the following presentation modes:
| pdftron::PDF::PDFView::PDFView | ( | ) |
| pdftron::PDF::PDFView::~PDFView | ( | ) |
| void pdftron::PDF::PDFView::SetDoc | ( | PDFDoc & | doc | ) |
| void pdftron::PDF::PDFView::SetPageViewMode | ( | PageViewMode | mode | ) |
Sets the page viewing mode.
| mode | - the new page viewing mode. The default PageView mode is e_fit_width. |
| PageViewMode pdftron::PDF::PDFView::GetPageViewMode | ( | ) |
| void pdftron::PDF::PDFView::SetPagePresentationMode | ( | PagePresentationMode | mode | ) |
Sets the current page presentation mode.
| mode | - the new page presentation mode. The default PagePresentationMode is e_single_continuous. |
| PagePresentationMode pdftron::PDF::PDFView::GetPagePresentationMode | ( | ) |
| int pdftron::PDF::PDFView::GetCurrentPage | ( | ) |
| int pdftron::PDF::PDFView::GetPageCount | ( | ) |
| bool pdftron::PDF::PDFView::GotoFirstPage | ( | ) |
Sets the current page to the first page in the document.
| bool pdftron::PDF::PDFView::GotoLastPage | ( | ) |
Sets the current page to the last page in the document.
| bool pdftron::PDF::PDFView::GotoNextPage | ( | ) |
Sets the current page to the next page in the document.
| bool pdftron::PDF::PDFView::GotoPreviousPage | ( | ) |
Sets the current page to the previous page in the document.
| bool pdftron::PDF::PDFView::SetCurrentPage | ( | int | page_num | ) |
Sets the current page to the given page.
| double pdftron::PDF::PDFView::GetZoom | ( | ) |
Gets the current zoom factor.
| bool pdftron::PDF::PDFView::SetZoom | ( | double | zoom | ) |
Sets the zoom factor to a new value.
The function zooms to a point at the center of the rendering buffer.
| zoom | - new scaling component used to display the page content. |
| bool pdftron::PDF::PDFView::SetZoom | ( | int | x, | |
| int | y, | |||
| double | zoom | |||
| ) |
Sets the zoom factor to a new value using the given pixel coordinate (x,y) as a zoom center.
The zoom point (x,y) is represented in the screen coordinate system, which starts in the upper-left corner of the client window.
| x | - the horizontal coordinate to zoom in. | |
| y | - the vertical coordinate to zoom in. | |
| zoom | - new scaling component used to display the page content. |
| void pdftron::PDF::PDFView::RotateClockwise | ( | ) |
Rotates all pages in the document 90 degrees clockwise.
| void pdftron::PDF::PDFView::RotateCounterClockwise | ( | ) |
Rotates all pages in the document 90 degrees counter-clockwise.
| int pdftron::PDF::PDFView::GetPageNumberFromScreenPt | ( | double | x, | |
| double | y | |||
| ) |
The positive number indicates a valid page, whereas number less than 1 means that no page was found.
| void pdftron::PDF::PDFView::ConvScreenPtToCanvasPt | ( | double & | x, | |
| double & | y | |||
| ) |
Converts a point expressed in screen coordinates to a point on canvas.
| void pdftron::PDF::PDFView::ConvCanvasPtToScreenPt | ( | double & | x, | |
| double & | y | |||
| ) |
Converts a point expressed in canvas coordinates to a point on screen.
| void pdftron::PDF::PDFView::ConvCanvasPtToPagePt | ( | double & | x, | |
| double & | y, | |||
| int | page_num = -1 | |||
| ) |
Converts a point expressed in canvas coordinates to a point on a given page.
| page_num | the page number for the page used as the origin of the destination coordinate system. Negative values are used to represent the current page. Pages are indexed starting from one. |
| void pdftron::PDF::PDFView::ConvPagePtToCanvasPt | ( | double & | x, | |
| double & | y, | |||
| int | page_num = -1 | |||
| ) |
Converts a point from a coordinate system of a given page to a point on canvas.
| page_num | the page number for the page used as the origin of the destination coordinate system. Negative values are used to represent the current page. Pages are indexed starting from one. |
| void pdftron::PDF::PDFView::ConvScreenPtToPagePt | ( | double & | x, | |
| double & | y, | |||
| int | page_num = -1 | |||
| ) |
Converts a point expressed in screen coordinates to a point on a given page.
| page_num | the page number for the page used as the origin of the destination coordinate system. Negative values are used to represent the current page. Pages are indexed starting from one. |
| void pdftron::PDF::PDFView::ConvPagePtToScreenPt | ( | double & | x, | |
| double & | y, | |||
| int | page_num = -1 | |||
| ) |
Converts a point from a coordinate system of a given page to a point on screen.
| page_num | the page number for the page used as the origin of the destination coordinate system. Negative values are used to represent the current page. Pages are indexed starting from one. |
| Common::Matrix2D pdftron::PDF::PDFView::GetDeviceTransform | ( | int | page_num = -1 |
) |
The device transformation matrix maps the page coordinate system to screen (or device) coordinate system.
| page_num | same as for PDFView.Conv???() methods. |
Common::Matrix2D scr2page(pdfview.GetDeviceTransform()); scr2page.Inverse();
| void pdftron::PDF::PDFView::SetErrorReportProc | ( | PDFRasterizer::ErrorReportProc | error_proc, | |
| void * | data | |||
| ) |
Sets the error handling function to be called in case an error is encountered during page rendering.
| error_proc | Error handling callback function (or delegate in .NET) | |
| data | Custom data to be passed as a second parameter to 'error_proc'. |
| void pdftron::PDF::PDFView::SetCurrentPageProc | ( | CurrentPageProc | curr_pagenum_proc, | |
| void * | data | |||
| ) |
Sets the callback function (i.e.
a delegate) that is called whenever current page number changes. This can be used to update the current page number within GUI applications etc.
| curr_pagenum_proc | Callback function (or a delegate in .NET). | |
| data | Custom data to be passed as a second parameter to 'curr_pagenum_proc'. |
| double pdftron::PDF::PDFView::GetCanvasWidth | ( | ) |
Gets the current canvas width.
| double pdftron::PDF::PDFView::GetCanvasHeight | ( | ) |
Gets the current canvas height.
| double pdftron::PDF::PDFView::GetHScrollPos | ( | ) |
The returned value is expressed in the canvas coordinate system. The canvas coordinate system is defined by a bounding box that surrounds all pages in the view.
| double pdftron::PDF::PDFView::GetVScrollPos | ( | ) |
The returned value is expressed in the canvas coordinate system. The canvas coordinate system is defined by a bounding box that surrounds all pages in the view.
| void pdftron::PDF::PDFView::OnScroll | ( | int | pix_dx, | |
| int | pix_dy | |||
| ) |
Scrolls the contents of the rendering buffer 'pix_dx' horizontally and 'pix_dy' vertically.
| pix_dx | horizontal scroll offset, in pixels | |
| pix_dy | vertical scroll offset, in pixels |
| void pdftron::PDF::PDFView::SetHScrollPos | ( | double | pos | ) |
Sets the horizontal scroll position.
| the | new horizontal scroll position. The position should be a number in the range between 0 and GetCanvasWidth(). The 'pos' parameter is expressed in the canvas coordinate system. The canvas coordinate system is defined by a bounding box that surrounds all pages in the view. |
| void pdftron::PDF::PDFView::SetVScrollPos | ( | double | pos | ) |
Sets the vertical scroll position.
| the | new vertical scroll position. The position should be a number in the range between 0 and GetCanvasheight(). The 'pos' parameter is expressed in the canvas coordinate system. The canvas coordinate system is defined by a bounding box that surrounds all pages in the view. |
| void pdftron::PDF::PDFView::OnSize | ( | int | width, | |
| int | height, | |||
| int | stride | |||
| ) |
Resize rendering buffer to new dimensions.
| width | - Filled by the method. The width of the target image in pixels. | |
| height | - Filled by the method. The height of the target image in pixels (the number of rows). | |
| stride | - Filled by the method. Stride determines the physical width (in bytes) of one row in memory. If this value is negative the direction of the Y axis is inverted. The absolute value of stride is of importance, because it allows rendering in buffers where rows are padded in memory (e.g. in Windows bitmaps are padded on 4 byte boundaries). |
| bool pdftron::PDF::PDFView::IsFinishedRendering | ( | ) |
| void pdftron::PDF::PDFView::CancelRendering | ( | ) |
Cancels rendering in progress.
If PDFView is not busy rendering the page, the function has no side effects.
| void pdftron::PDF::PDFView::Update | ( | ) |
Redraws the contents of the buffer.
| const char* pdftron::PDF::PDFView::GetBuffer | ( | ) |
Gets the pointer to the internal memory buffer containing the rasterized image of the given page.
The buffer size is at least 'GetBufferHeight*GetBufferStride' bytes. The pixel data is stored in 8 bit per component, BGRA format.
| int pdftron::PDF::PDFView::GetBufferWidth | ( | ) |
Gets the width of the rendering buffer in pixels.
| int pdftron::PDF::PDFView::GetBufferHeight | ( | ) |
Gets the width of the rendering buffer in pixels.
| int pdftron::PDF::PDFView::GetBufferStride | ( | ) |
Gets the stride of the rendering buffer in pixels.
| void pdftron::PDF::PDFView::InvalidateRect | ( | const Rect * | rect = 0 |
) |
The InvalidateRect function adds a rectangle to the buffer/window update region.
The update region represents the portion of the buffer/window's client area that must be redrawn
| void pdftron::PDF::PDFView::SetDrawAnnotations | ( | bool | render_annots | ) |
Enable or disable annotation and forms rendering.
By default, all annotations and form fields are rendered.
| render_annots | True to draw annotations, false otherwise. |
| void pdftron::PDF::PDFView::SetAntiAliasing | ( | bool | enable_aa | ) |
Enable or disable anti-aliasing.
Anti-Aliasing is a technique used to improve the visual quality of images when displaying them on low resolution devices (for example, low DPI computer monitors).
Anti-aliasing is enabled by default.
| void pdftron::PDF::PDFView::SetImageSmoothing | ( | bool | smoothing_enabled = true |
) |
Enable or disable image smoothing.
The rasterizer allows a trade-off between rendering quality and rendering speed. This function can be used to indicate the preference between rendering speed and quality.
| smoothing_enabled | True to enable image smoothing, false otherwise. image smoothing is enabled. |
| void pdftron::PDF::PDFView::SetCaching | ( | bool | enabled | ) |
Enables of disables caching.
| enabled | if true caching is enabled, if false caching is disabled. by default caching is enabled |
| void pdftron::PDF::PDFView::SetRasterizerType | ( | PDFRasterizer::Type | type | ) |
Sets the core graphics library used for rasterization and rendering.
Using this method it is possible to quickly switch between different implementations. By default, PDFNet uses a built-in, high-quality, and platform independent rasterizer.
| type | Rasterizer type. |
| void pdftron::PDF::PDFView::SetGamma | ( | double | exp | ) |
Sets the gamma factor used for anti-aliased rendering.
| exp | is the exponent value of gamma function. Typical values are in the range from 0.1 to 3. |
| void pdftron::PDF::PDFView::SetOCGContext | ( | const OCG::Context & | ctx | ) |
Sets the Optional Content Group (OCG) context that should be used when viewing the document.
This function can be used to change the current OCG context. Optional content (such as PDF layers) will be selectively rendered based on the states of optional content groups in the given context.
| ctx | Optional Content Group (OCG) context, or NULL if the rasterizer should render all content on the page. |
| OCG::Context pdftron::PDF::PDFView::GetOCGContext | ( | ) |
| void pdftron::PDF::PDFView::SetRenderBeginProc | ( | RenderBeginEventProc | proc, | |
| void * | data | |||
| ) |
Set a callback function that can be used to notify the client that PDFView is about to start rendering and modifying the contents of the rendering buffer.
| proc | A callback function that will be called just before PDFView starts rendering. | |
| data | Custom data to be passed as a parameter to 'proc'. |
| void pdftron::PDF::PDFView::SetRenderFinishProc | ( | RenderFinishEventProc | proc, | |
| void * | data | |||
| ) |
Set a callback function that can be used to notify the client that PDFView finished rendering and modifying the contents of the rendering buffer.
| proc | A callback function that will be called after PDFView is done with rendering. | |
| data | Custom data to be passed as a parameter to 'proc'. |
| void pdftron::PDF::PDFView::SetToolMode | ( | ToolMode | mode | ) |
Sets the new tool mode (such as pan, text select, etc).
| mode | - new tool mode. |
| ToolMode pdftron::PDF::PDFView::GetToolMode | ( | ) |
| bool pdftron::PDF::PDFView::SelectByRect | ( | double | x1, | |
| double | y1, | |||
| double | x2, | |||
| double | y2 | |||
| ) |
Selects all words that intersect the given selection rectangle.
| x1,y1,x2,y2 | - coordinates (in PDF coordinates) defining the selection rectangle. |
| bool pdftron::PDF::PDFView::SelectByStruct | ( | double | x1, | |
| double | y1, | |||
| double | x2, | |||
| double | y2 | |||
| ) |
Selects text taking into account page logical structure.
This type of selection is similar to HTML like selection in web-browsers.
| x1,y1,x2,y2 | - coordinates (in PDF coordinates) defining the selection rectangle. |
| bool pdftron::PDF::PDFView::FindText | ( | const UString & | search_str, | |
| bool | match_case = false, |
|||
| bool | match_whole_word = false, |
|||
| bool | search_up = false | |||
| ) |
Selects text by searching for a given string of text.
| search_str | - | |
| match_case | - | |
| match_whole_word | - | |
| search_up | - |
| void pdftron::PDF::PDFView::SelectAll | ( | ) |
Selects all text on the page.
| bool pdftron::PDF::PDFView::HasSelection | ( | ) |
| void pdftron::PDF::PDFView::ClearSelection | ( | ) |
Remove any text selection.
| PDFView::Selection pdftron::PDF::PDFView::GetSelection | ( | ) |
| void pdftron::PDF::PDFView::SetPageBorderVisibility | ( | bool | border_visible | ) |
Enables or disables drawing of a thin border around each page.
| border_visible | - if true, the border will be visible. |