foxit.common.Renderer Class Reference
Inheritance diagram for foxit.common.Renderer:
foxit.common.Base

Public Types

enum  ColorMode { ColorMode.e_ColorModeNormal = 0, ColorMode.e_ColorModeMapping = 2 }
 Enumeration for rendering color mode.
More...
 
enum  ContentFlag { ContentFlag.e_RenderPage = 0x01, ContentFlag.e_RenderAnnot = 0x02 }
 Enumeration for rendering content flags.
More...
 

Public Member Functions

 Renderer (System.Drawing.Bitmap bitmap, bool is_rgb_order)
 Constructor, with bitmap.
More...
 
 Renderer (Renderer other)
 Constructor, with another render object.

 
bool IsEmpty ()
 Check whether current object is empty or not.
More...
 
bool RenderAnnot (Annot annot, Matrix2D matrix)
 Render a specified annotation.
More...
 
void SetClearType (bool is_clear_type)
 Set the flag to decide whether to use ClearType-like anti-aliasing to render text objects.
More...
 
void SetClipPathFill (Path clip_path, Matrix2D matrix, FillMode fill_mode)
 Set clipping path using filled region.
More...
 
void SetClipPathStroke (Path clip_path, Matrix2D matrix, GraphState graph_state)
 Set clipping path using stroked region.
More...
 
void SetClipRect (RectI clip_rect)
 Set the clipping rectangle which will be used in following rendering progress.
More...
 
void SetColorMode (Renderer.ColorMode color_mode)
 Set color mode.
More...
 
void SetForceDownSample (bool is_to_force_down_sample)
 Set the flag to decide whether to use down-sampling for image stretching.
More...
 
void SetForceHalftone (bool is_to_force_halftone)
 Set the flag to decide whether to use halftone for image stretching.
More...
 
void SetLayerContext (LayerContext layer_context)
 Set layer context to render context handle.
More...
 
void SetMappingModeColors (uint background_color, uint foreground_color)
 Set background color and foreground color when color mode is e_ColorModeMapping.
More...
 
void SetPrintTextAsGraphic (bool is_to_print_text_graphic)
 Set the flag to decide whether to print text as path or bitmap.
More...
 
void SetPrintTextAsImage (bool is_to_print_text_image)
 Set the flag to decide whether to print text as image.
More...
 
void SetRenderContentFlags (int render_content_flags)
 Set rendering flag to decide what content will be rendered.
More...
 
void SetRenderFormField (bool is_render_formfield)
 Set the flag to decide whether to render form fields (except signature fields).
More...
 
void SetRenderImageAntiAliasing (bool is_render_image_antialiasing)
 Set the flag to decide whether to draw image anti-aliasing.
More...
 
void SetRenderPathAntiAliasing (bool is_render_path_antialiasing)
 Set the flag to decide whether to draw path anti-aliasing.
More...
 
void SetRenderPathThinLine (bool is_render_path_thin_line)
 Set the flag to decide whether to draw path as thin line.
More...
 
void SetRenderSignature (bool is_render_signature)
 Set the flag to decide whether to render signatures or not.
More...
 
void SetRenderTextAntiAliasing (bool is_render_text_antialiasing)
 Set the flag to decide whether to draw text anti-aliasing.
More...
 
void SetTransformAnnotIcon (bool is_to_transform_annot_icon)
 Set the flag to decide whether to transform annotation icon or not when display.
More...
 
Progressive StartQuickRender (PDFPage page, Matrix2D matrix, PauseCallback pause)
 Start to quickly render a PDF page, mainly for thumbnail purpose.
More...
 
Progressive StartRender (PDFPage page, Matrix2D matrix, PauseCallback pause)
 Start to render a PDF page.
More...
 
Progressive StartRenderBitmap (System.Drawing.Bitmap bitmap, Matrix2D matrix, RectI clip_rect, int interpolation, PauseCallback pause)
 Start to render a bitmap.
More...
 
Progressive StartRenderReflowPage (ReflowPage reflow_page, Matrix2D matrix, PauseCallback pause)
 Start to render a reflow page.
More...
 

Detailed Description

PDF renderer is a graphics engine and is used to render page to a bitmap or a platform device context. This class can be constructed with a bitmap, or a device object. It offers functions to set rendering options/flags, and do rendering. In this class, there are several ways to do rendering:


To render page and annotations, first use function Renderer::SetRenderContentFlags to decide whether to render page and annotation both or not, and then use functions Renderer::StartRender to do the rendering. Function Renderer::StartQuickRender can also be used to render page but only for thumbnail purpose.
To render a single annotation, use function Renderer::RenderAnnot.
To render a bitmap, use function Renderer::StartRenderBitmap.
To render a reflow page, use function Renderer::StartRenderReflowPage.
Widget annotation is always associated with form field and form control in Foxit PDF SDK. For how to render widget annotations, here is a recommended flow:


  1. After loading a PDF page, first render the page and all annotations in this page (including widget annotations).
  2. Then, if user uses pdf::interform::Filler object to fill the form, user should use function pdf::interform::Filler::Render to render the focused form control instead of using function Renderer::RenderAnnot.

See also
pdf::interform::Filler

Member Enumeration Documentation

◆ ColorMode

Enumeration for rendering color mode.

Values of this enumeration should be used alone.

Enumerator
e_ColorModeNormal 

Normal color mode.

e_ColorModeMapping 

Map a color value to the color range defined by a background color and a foreground color.

◆ ContentFlag

Enumeration for rendering content flags.

Values of this enumeration can be used alone or in combination.

Enumerator
e_RenderPage 

If set, page content will be rendered.

e_RenderAnnot 

If set, annotations will be rendered.

Constructor & Destructor Documentation

◆ Renderer()

foxit.common.Renderer.Renderer ( System.Drawing.Bitmap  bitmap,
bool  is_rgb_order 
)
inline

Constructor, with bitmap.

The input bitmap is treated as an independent device and all the content rendered by the renderer would appear in the bitmap.

Parameters
bitmapA bitmap used for rendering. User should ensure the bitmap to keep valid until the end of life cycle of current renderer object.
is_rgb_ordertrue means Foxit PDF SDK needs to use RGB byte-order (Red is in the lowest order) when rendering. false means Foxit PDF SDK needs to use BGR byte-order (Blue is in the lowest order) when rendering.

Member Function Documentation

◆ IsEmpty()

bool foxit.common.Renderer.IsEmpty ( )
inline

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.

◆ RenderAnnot()

bool foxit.common.Renderer.RenderAnnot ( Annot  annot,
Matrix2D  matrix 
)
inline

Render a specified annotation.

When this function is called, rendering flag (set by function Renderer::SetRenderContentFlags or by default) will be ignored.

Parameters
annotAn Annot object to be rendered. If input annot is a pop-up annotation, this function will not render it and will return false.
matrixThe transformation matrix used for rendering, which is usually returned by function pdf::PDFPage::GetDisplayMatrix.
Returns
true means success, while false means failure.

◆ SetClearType()

void foxit.common.Renderer.SetClearType ( bool  is_clear_type)
inline

Set the flag to decide whether to use ClearType-like anti-aliasing to render text objects.

If this function is not called, default value true will be used.

Parameters
is_clear_typetrue means to use ClearType-like anti-aliasing to render text objects. false means not to use ClearType-like anti-aliasing to render text objects.
Returns
None.

◆ SetClipPathFill()

void foxit.common.Renderer.SetClipPathFill ( Path  clip_path,
Matrix2D  matrix,
FillMode  fill_mode 
)
inline

Set clipping path using filled region.

Parameters
clip_pathA clipping path.
matrixThe transformation matrix used for clipping.
fill_modeFill mode. It should be value e_FillModeAlternate or e_FillModeWinding.
Returns
None.

◆ SetClipPathStroke()

void foxit.common.Renderer.SetClipPathStroke ( Path  clip_path,
Matrix2D  matrix,
GraphState  graph_state 
)
inline

Set clipping path using stroked region.

Parameters
clip_pathA clipping path.
matrixThe transformation matrix used for clipping.
graph_stateNew graph state, for pen attributes. It can be null.
Returns
None.

◆ SetClipRect()

void foxit.common.Renderer.SetClipRect ( RectI  clip_rect)
inline

Set the clipping rectangle which will be used in following rendering progress.

Parameters
clip_rectA clipping rectangle. If it is null, that means not to use clipping rectangle in following rendering progress.
Returns
None.

◆ SetColorMode()

void foxit.common.Renderer.SetColorMode ( Renderer.ColorMode  color_mode)
inline

Set color mode.

If this function is not called, default value e_ColorModeNormal will be used.

Parameters
color_modeColor mode value. It should be one of following values:

e_ColorModeNormal means normal color mode.
e_ColorModeMapping means to map a color value to the color range defined by a background color and a foreground color. If this mode is used, please call function Renderer::SetMappingModeColors to set "background color" and "foreground color".

Returns
None.

◆ SetForceDownSample()

void foxit.common.Renderer.SetForceDownSample ( bool  is_to_force_down_sample)
inline

Set the flag to decide whether to use down-sampling for image stretching.

If this function is not called, default value false will be used.

Parameters
is_to_force_down_sampletrue means to use down-sampling for image stretching. false means not to use down-sampling for image stretching.
Returns
None.

◆ SetForceHalftone()

void foxit.common.Renderer.SetForceHalftone ( bool  is_to_force_halftone)
inline

Set the flag to decide whether to use halftone for image stretching.

If this function is not called, default value true will be used.

Parameters
is_to_force_halftonetrue means to use halftone for image stretching. false means not to use halftone for image stretching.
Returns
None.

◆ SetLayerContext()

void foxit.common.Renderer.SetLayerContext ( LayerContext  layer_context)
inline

Set layer context to render context handle.

In order to render one layer when PDF page's contents is rendered on a rendering context, user should call this function to set the layer context to render context.

Parameters
layer_contextA LayerContext object.
Returns
None.

◆ SetMappingModeColors()

void foxit.common.Renderer.SetMappingModeColors ( uint  background_color,
uint  foreground_color 
)
inline

Set background color and foreground color when color mode is e_ColorModeMapping.

Parameters
background_colorThe background color. Format: 0xAARRGGBB.
foreground_colorThe foreground color. Format: 0xAARRGGBB.
Returns
None.

◆ SetPrintTextAsGraphic()

void foxit.common.Renderer.SetPrintTextAsGraphic ( bool  is_to_print_text_graphic)
inline

Set the flag to decide whether to print text as path or bitmap.

When this flag is true, Foxit PDF SDK will render text in different way: if font size is greater than 50, print text as path; otherwise, print text as bitmap.
If this function is not called, default value false will be used.

Parameters
is_to_print_text_graphictrue means to print text as path or bitmap. false means not to print text as path or bitmap.
Returns
None.

◆ SetPrintTextAsImage()

void foxit.common.Renderer.SetPrintTextAsImage ( bool  is_to_print_text_image)
inline

Set the flag to decide whether to print text as image.

If this function is not called, default value false will be used.

Parameters
is_to_print_text_imagetrue means to print text as image. false means not to print text as image.
Returns
None.

◆ SetRenderContentFlags()

void foxit.common.Renderer.SetRenderContentFlags ( int  render_content_flags)
inline

Set rendering flag to decide what content will be rendered.

If this function is not called, default value (e_RenderPage | e_RenderAnnot) will be used.

Parameters
render_content_flagsRendering content flags. Please refer to e_RenderXXX values and this should be one or a combination of these values.
Returns
None.

◆ SetRenderFormField()

void foxit.common.Renderer.SetRenderFormField ( bool  is_render_formfield)
inline

Set the flag to decide whether to render form fields (except signature fields).

If this function is not called, default value true will be used.

Parameters
is_render_formfieldtrue means to render form fields (except signature fields). false means not to render form fields (except signature fields).
Returns
None.

◆ SetRenderImageAntiAliasing()

void foxit.common.Renderer.SetRenderImageAntiAliasing ( bool  is_render_image_antialiasing)
inline

Set the flag to decide whether to draw image anti-aliasing.

If this function is not called, default value true will be used.

Parameters
is_render_image_antialiasingtrue means to draw image anti-aliasing, and the effect would be similar to values defined in enum class InterpolationFlag. false means to draw image aliasing.
Returns
None.

◆ SetRenderPathAntiAliasing()

void foxit.common.Renderer.SetRenderPathAntiAliasing ( bool  is_render_path_antialiasing)
inline

Set the flag to decide whether to draw path anti-aliasing.

If this function is not called, default value true will be used.

Parameters
is_render_path_antialiasingtrue means to draw path anti-aliasing. false means to draw path aliasing.
Returns
None.

◆ SetRenderPathThinLine()

void foxit.common.Renderer.SetRenderPathThinLine ( bool  is_render_path_thin_line)
inline

Set the flag to decide whether to draw path as thin line.

If this function is not called, default value false will be used.

Parameters
is_render_path_thin_linetrue means to draw path as thin line. false means not to draw path as thin line.
Returns
None.

◆ SetRenderSignature()

void foxit.common.Renderer.SetRenderSignature ( bool  is_render_signature)
inline

Set the flag to decide whether to render signatures or not.

If this function is not called, default value true will be used.

Parameters
is_render_signaturetrue means to render signatures. false means not to render signatures.
Returns
None.

◆ SetRenderTextAntiAliasing()

void foxit.common.Renderer.SetRenderTextAntiAliasing ( bool  is_render_text_antialiasing)
inline

Set the flag to decide whether to draw text anti-aliasing.

If this function is not called, default value true will be used.

Parameters
is_render_text_antialiasingtrue means to draw text anti-aliasing. false means to draw text aliasing.
Returns
None.

◆ SetTransformAnnotIcon()

void foxit.common.Renderer.SetTransformAnnotIcon ( bool  is_to_transform_annot_icon)
inline

Set the flag to decide whether to transform annotation icon or not when display.

The flag set by this function is only useful for note and file attachment annotations. If this function is not called, default value true will be used.

Parameters
is_to_transform_annot_icontrue means to transform annotation icon when display. false means not to transform annotation icon when display.
Returns
None.

◆ StartQuickRender()

Progressive foxit.common.Renderer.StartQuickRender ( PDFPage  page,
Matrix2D  matrix,
PauseCallback  pause 
)
inline

Start to quickly render a PDF page, mainly for thumbnail purpose.

This function is mainly used for render a page for thumbnail purpose. The rendered content will not be completed: all the annotations will be ignored, event if flag e_RenderAnnot is set by function Renderer::SetRenderContentFlags; text content will become blurred and will be replace by pixel point.
It may still take a long time to do this quick rendering when page has complex or large contents, so Foxit PDF SDK uses a progressive process to do this.

Parameters
pageA valid PDF page. It should have been parsed.
matrixThe transformation matrix used for rendering, which is usually returned by function pdf::PDFPage::GetDisplayMatrix.
pausePause callback object which decides if the rendering process needs to be paused. This can be null which means not to pause during the rendering process. If this is not null, it should be a valid pause object implemented by user.
Returns
A Progressive object. Please check the rate of current progress by function common::Progressive::GetRateOfProgress. If the rate is not 100 yet, call function common::Progressive::Continue to coninue the progress until the progress is finished.

◆ StartRender()

Progressive foxit.common.Renderer.StartRender ( PDFPage  page,
Matrix2D  matrix,
PauseCallback  pause 
)
inline

Start to render a PDF page.

It may take a long time to render a PDF page with complex or large contents, so Foxit PDF SDK uses a progressive process to do this.
Widget annotation is always associated with form field and form control in Foxit PDF SDK. For how to render widget annotations, here is a recommended flow:


After loading a PDF page, first render the page and all annotations in this page (including widget annotations).
Then, if user uses pdf::interform::Filler object to fill the form, user should use function pdf::interform::Filler::Render to render the focused form control instead of using function Renderer::RenderAnnot.

Parameters
pageA valid PDF page. If only to render annotations (that means only e_RenderAnnot is set by function Renderer::SetRenderContentFlags), there is no need to parse the input page; otherwise the input page should have been parsed.
matrixThe transformation matrix used for rendering, which is usually returned by function pdf::PDFPage::GetDisplayMatrix.
pausePause callback object which decides if the rendering process needs to be paused. This can be null which means not to pause during the rendering process. If this is not null, it should be a valid pause object implemented by user.
Returns
A Progressive object. Please check the rate of current progress by function common::Progressive::GetRateOfProgress. If the rate is not 100 yet, call function common::Progressive::Continue to coninue the progress until the progress is finished.

◆ StartRenderBitmap()

Progressive foxit.common.Renderer.StartRenderBitmap ( System.Drawing.Bitmap  bitmap,
Matrix2D  matrix,
RectI  clip_rect,
int  interpolation,
PauseCallback  pause 
)
inline

Start to render a bitmap.

It may take a long time to render a bitmap with complex or large contents, so Foxit PDF SDK uses a progressive process to do this.

Parameters
bitmapA valid bitmap. User should ensure the bitmap to keep valid until current rendering process is finished.
matrixThe transformation matrix used for rendering. This matrix is used as image matrix:
assume that h is image height, w is image width, and then matrix [w 0 0 h 0 0] will produce an identical image.
clip_rectClip rectangle for the rendering device. This can be null.
interpolationBitmap interpolation flags. Please refer to e_XXX values and this can be one or a combination of these values. If not specify any flag, please use 0.
pausePause callback object which decides if the rendering process needs to be paused. This can be null which means not to pause during the rendering process. If this is not null, it should be a valid pause object implemented by user.
Returns
A Progressive object. Please check the rate of current progress by function common::Progressive::GetRateOfProgress. If the rate is not 100 yet, call function common::Progressive::Continue to coninue the progress until the progress is finished.

◆ StartRenderReflowPage()

Progressive foxit.common.Renderer.StartRenderReflowPage ( ReflowPage  reflow_page,
Matrix2D  matrix,
PauseCallback  pause 
)
inline

Start to render a reflow page.

It may take a long time to render a reflow page with complex or large contents, so Foxit PDF SDK uses a progressive process to do this.

Parameters
reflow_pageA valid reflow page. It should have been parsed.
matrixThe transformation matrix used for rendering, which is usually returned by function pdf::ReflowPage::GetDisplayMatrix.
pausePause callback object which decides if the rendering process needs to be paused. This can be null which means not to pause during the rendering process. If this is not null, it should be a valid pause object implemented by user.
Returns
A Progressive object. Please check the rate of current progress by function common::Progressive::GetRateOfProgress. If the rate is not 100 yet, call function common::Progressive::Continue to coninue the progress until the progress is finished.

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