fs_render.h
Go to the documentation of this file.
1 
15 #ifndef FS_RENDER_H_
16 #define FS_RENDER_H_
17 
18 #include "common/fs_common.h"
19 #include "common/fs_image.h"
20 #include "pdf/annots/fs_annot.h"
21 #include "pdf/fs_pdflayer.h"
22 #include "pdf/fs_pdfpage.h"
23 #include "pdf/fs_reflowpage.h"
24 #ifndef _FX_NO_XFA_
25 #include "addon/xfa/fs_xfa.h"
26 #endif
27 
28 #ifdef __APPLE__
29 #include <CoreGraphics/CoreGraphics.h>
30 #endif
31 
36 namespace foxit {
40 namespace common {
66 class Renderer FS_FINAL : public Base {
67  public:
73  typedef enum _ColorMode {
78  } ColorMode;
79 
85  typedef enum _ContentFlag {
87  e_RenderPage = 0x01,
90  } ContentFlag;
91 
92  #ifdef __APPLE__
93 
98  typedef enum _DeviceType {
100  e_DeviceDisplay = 1,
102  e_DevicePrinter = 2
103  }DeviceType;
104  #endif
105 
118  Renderer(const Bitmap& bitmap, bool is_rgb_order);
119 
120 #if (defined(_WIN32) || defined(_WIN64)) && (!defined(SWIG) || defined(_SWIG_DOTNET_))
121 
128  explicit Renderer(HDC dc);
129 #endif
130 
131 #ifdef __APPLE__
132 
142  Renderer(const CGContextRef& context, DeviceType device_type);
143 #endif
144 
149  Renderer(const Renderer& other);
151  ~Renderer();
152 
160  Renderer& operator = (const Renderer& other);
168  bool operator == (const Renderer& other) const;
176  bool operator != (const Renderer& other) const;
177 
185  bool IsEmpty() const;
186 
210  Progressive StartQuickRender(const pdf::PDFPage& page, const Matrix& matrix, PauseCallback* pause = NULL);
211 
242  Progressive StartRender(const pdf::PDFPage& page, const Matrix& matrix, PauseCallback* pause = NULL);
243 
262  Progressive StartRenderReflowPage(const pdf::ReflowPage& reflow_page, const Matrix& matrix,
263  PauseCallback* pause = NULL);
264 
265 #ifndef _FX_NO_XFA_
266 
286  Progressive StartRenderXFAPage(const addon::xfa::XFAPage& xfa_page_view, const Matrix& matrix, bool is_highlight,
287  PauseCallback* pause = NULL);
288 #endif
289 
314  Progressive StartRenderBitmap(const Bitmap& bitmap, const Matrix& matrix,
315  const RectI* clip_rect = NULL, uint32 interpolation = 0,
316  PauseCallback* pause = NULL);
317 
331  bool RenderAnnot(const pdf::annots::Annot& annot, const Matrix& matrix);
332 
341  void SetClipRect(const RectI* clip_rect);
342 
353  void SetClipPathFill(const Path& clip_path, const Matrix& matrix, foxit::common::FillMode fill_mode);
354 
364  void SetClipPathStroke(const Path& clip_path, const Matrix& matrix, const GraphState* graph_state = NULL);
365 
378  void SetRenderContentFlags(uint32 render_content_flags);
379 
391  void SetTransformAnnotIcon(bool is_to_transform_annot_icon);
392 
404  void SetRenderFormField(bool is_render_formfield);
405 
416  void SetRenderSignature(bool is_render_signature);
417 
428  void SetLayerContext(const pdf::LayerContext& layer_context);
447  void SetColorMode(ColorMode color_mode);
456  void SetMappingModeColors(ARGB background_color, ARGB foreground_color);
457 
468  void SetClearType(bool is_clear_type);
481  void SetPrintTextAsGraphic(bool is_to_print_text_graphic);
482 
493  void SetPrintTextAsImage(bool is_to_print_text_image);
494 
505  void SetForceDownSample(bool is_to_force_down_sample);
506 
517  void SetForceHalftone(bool is_to_force_halftone);
518 
529  void SetRenderPathThinLine(bool is_render_path_thin_line);
530 
541  void SetRenderTextAntiAliasing(bool is_render_text_antialiasing);
542 
553  void SetRenderPathAntiAliasing(bool is_render_path_antialiasing);
554 
566  void SetRenderImageAntiAliasing(bool is_render_image_antialiasing);
567 
568  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
569  explicit Renderer(FS_HANDLE handle = NULL);
570 };
571 } // namespace common
572 } // namespace foxit
573 #endif // FS_RENDER_H_
574 
void SetRenderContentFlags(uint32 render_content_flags)
Set rendering flag to decide what content will be rendered.
Header file for PDF reflow page related definitions and classes.
Progressive StartRenderBitmap(const Bitmap &bitmap, const Matrix &matrix, const RectI *clip_rect=0, uint32 interpolation=0, PauseCallback *pause=0)
Start to render a bitmap.
Definition: fs_reflowpage.h:60
Renderer & operator=(const Renderer &other)
Assign operator.
IFX_Pause PauseCallback
Definition: fs_common.h:960
void SetRenderImageAntiAliasing(bool is_render_image_antialiasing)
Set the flag to decide whether to draw image anti-aliasing.
Progressive StartQuickRender(const pdf::PDFPage &page, const Matrix &matrix, PauseCallback *pause=0)
Start to quickly render a PDF page, mainly for thumbnail purpose.
Definition: fs_xfa.h:1124
void SetClipRect(const RectI *clip_rect)
Set the clipping rectangle which will be used in following rendering progress.
If set, page content will be rendered.
Definition: fs_render.h:87
void SetTransformAnnotIcon(bool is_to_transform_annot_icon)
Set the flag to decide whether to transform annotation icon or not when display.
~Renderer()
Destructor.
void SetRenderPathAntiAliasing(bool is_render_path_antialiasing)
Set the flag to decide whether to draw path anti-aliasing.
ColorMode
Enumeration for rendering color mode.
Definition: fs_render.h:73
bool IsEmpty() const
Check whether current object is empty or not.
Progressive StartRenderXFAPage(const addon::xfa::XFAPage &xfa_page_view, const Matrix &matrix, bool is_highlight, PauseCallback *pause=0)
Start to render an XFA page.
void SetRenderTextAntiAliasing(bool is_render_text_antialiasing)
Set the flag to decide whether to draw text anti-aliasing.
void SetForceHalftone(bool is_to_force_halftone)
Set the flag to decide whether to use halftone for image stretching.
Header file for PDF layer related definitions and classes.
Header file for image and bitmap related definitions and classes.
void SetColorMode(ColorMode color_mode)
Set color mode.
Definition: fs_render.h:66
void SetClipPathFill(const Path &clip_path, const Matrix &matrix, foxit::common::FillMode fill_mode)
Set clipping path using filled region.
uint32 ARGB
ARGB color type, 32 bits, ((b) | ((g) << 8) | ((r) << 16)) | ((a) << 24)
Definition: fs_basictypes.h:212
Progressive StartRenderReflowPage(const pdf::ReflowPage &reflow_page, const Matrix &matrix, PauseCallback *pause=0)
Start to render a reflow page.
void SetClearType(bool is_clear_type)
Set the flag to decide whether to use ClearType-like anti-aliasing to render text objects...
Header file for annotation related definitions and classes.
FillMode
Enumeration for filling mode type, mainly for path graphics object.
Definition: fs_common.h:253
Renderer(const Bitmap &bitmap, bool is_rgb_order)
Constructor, with bitmap.
void SetRenderPathThinLine(bool is_render_path_thin_line)
Set the flag to decide whether to draw path as thin line.
bool operator!=(const Renderer &other) const
Not equal operator.
void SetRenderFormField(bool is_render_formfield)
Set the flag to decide whether to render form fields (except signature fields).
Map a color value to the color range defined by a background color and a foreground color...
Definition: fs_render.h:77
If set, annotations will be rendered.
Definition: fs_render.h:89
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:198
Definition: fs_pdfpage.h:307
void * FS_HANDLE
Handle type.
Definition: fs_basictypes.h:216
Header file for common definitions and classes.
Progressive StartRender(const pdf::PDFPage &page, const Matrix &matrix, PauseCallback *pause=0)
Start to render a PDF page.
Normal color mode.
Definition: fs_render.h:75
Definition: fx_coordinates.h:594
Definition: fs_basictypes.h:342
Definition: fs_pdflayer.h:245
void SetLayerContext(const pdf::LayerContext &layer_context)
Set layer context to render context handle.
void SetForceDownSample(bool is_to_force_down_sample)
Set the flag to decide whether to use down-sampling for image stretching.
Header file for XFA related definitions and functions.
bool RenderAnnot(const pdf::annots::Annot &annot, const Matrix &matrix)
Render a specified annotation.
Header file for PDF page related definitions and classes.
Definition: fs_annot.h:749
void SetRenderSignature(bool is_render_signature)
Set the flag to decide whether to render signatures or not.
Foxit namespace.
Definition: fs_connectedpdf.h:26
void SetPrintTextAsImage(bool is_to_print_text_image)
Set the flag to decide whether to print text as image.
ContentFlag
Enumeration for rendering content flags.
Definition: fs_render.h:85
void SetMappingModeColors(ARGB background_color, ARGB foreground_color)
Set background color and foreground color when color mode is Renderer::e_ColorModeMapping.
#define NULL
The null-pointer value.
Definition: fx_system.h:773
bool operator==(const Renderer &other) const
Equal operator.
Definition: fx_coordinates.h:1053
void SetPrintTextAsGraphic(bool is_to_print_text_graphic)
Set the flag to decide whether to print text as path or bitmap.
void SetClipPathStroke(const Path &clip_path, const Matrix &matrix, const GraphState *graph_state=0)
Set clipping path using stroked region.

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