Foxit PDF SDK
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 #ifndef __EMSCRIPTEN_RENDER__
21 #include "pdf/annots/fs_annot.h"
22 #include "pdf/fs_pdflayer.h"
23 #include "pdf/fs_reflowpage.h"
24 #ifndef _FX_NO_XFA_
25 #include "addon/xfa/fs_xfa.h"
26 #endif
27 #endif
28 
29 #ifdef __APPLE__
30 #include <CoreGraphics/CoreGraphics.h>
31 #endif
32 
37 namespace foxit {
38 namespace pdf {
39 class PDFPage;
40 }
44 namespace common {
70 class Renderer FS_FINAL : public Base {
71  public:
77  typedef enum _ColorMode {
82  } ColorMode;
83 
89  typedef enum _ContentFlag {
91  e_RenderPage = 0x01,
94  } ContentFlag;
95 
96  #ifdef __APPLE__
97 
102  typedef enum _DeviceType {
104  e_DeviceDisplay = 1,
106  e_DevicePrinter = 2
107  }DeviceType;
108  #endif
109 
122  Renderer(const Bitmap& bitmap, bool is_rgb_order);
123 
124 #if (defined(_WIN32) || defined(_WIN64)) && (!defined(SWIG) || defined(_SWIG_DOTNET_))
125 
132  explicit Renderer(HDC dc);
133 #endif
134 
135 #ifdef __APPLE__
136 
146  Renderer(const CGContextRef& context, DeviceType device_type);
147 #endif
148 
153  Renderer(const Renderer& other);
155  ~Renderer();
156 
164  Renderer& operator = (const Renderer& other);
172  bool operator == (const Renderer& other) const;
180  bool operator != (const Renderer& other) const;
181 
189  bool IsEmpty() const;
190 
214  Progressive StartQuickRender(const pdf::PDFPage& page, const Matrix& matrix, PauseCallback* pause = NULL);
215 
246  Progressive StartRender(const pdf::PDFPage& page, const Matrix& matrix, PauseCallback* pause = NULL);
247 #ifndef __EMSCRIPTEN_RENDER__
248 
266  Progressive StartRenderReflowPage(const pdf::ReflowPage& reflow_page, const Matrix& matrix,
267  PauseCallback* pause = NULL);
268 
269 #ifndef _FX_NO_XFA_
270 
290  Progressive StartRenderXFAPage(const addon::xfa::XFAPage& xfa_page_view, const Matrix& matrix, bool is_highlight,
291  PauseCallback* pause = NULL);
292 #endif
293 #endif
294 
319  Progressive StartRenderBitmap(const Bitmap& bitmap, const Matrix& matrix,
320  const RectI* clip_rect = NULL, uint32 interpolation = 0,
321  PauseCallback* pause = NULL);
322 #ifndef __EMSCRIPTEN_RENDER__
323 
332 
346  bool RenderAnnot(const pdf::annots::Annot& annot, const Matrix& matrix);
347 #endif
348 
360  bool RenderFormControls(const pdf::PDFPage& page, const Matrix& matrix);
361 #ifndef __EMSCRIPTEN_RENDER__
362 
375  bool RenderGraphicsObject(const pdf::graphics::GraphicsObject* graphics_object, const pdf::PDFPage& page, const Matrix& matrix);
376 #endif
377 
385  void SetClipRect(const RectI* clip_rect);
386 
397  void SetClipPathFill(const Path& clip_path, const Matrix& matrix, foxit::common::FillMode fill_mode);
398 
408  void SetClipPathStroke(const Path& clip_path, const Matrix& matrix, const GraphState* graph_state = NULL);
409 
422  void SetRenderContentFlags(uint32 render_content_flags);
423 
437  void SetRenderFormField(bool is_render_formfield);
438 
451  void SetRenderSignature(bool is_render_signature);
452 #ifndef __EMSCRIPTEN_RENDER__
453 
463  void SetLayerContext(const pdf::LayerContext& layer_context);
464 #endif
465 
483  void SetColorMode(ColorMode color_mode);
492  void SetMappingModeColors(ARGB background_color, ARGB foreground_color);
493 
504  void SetClearType(bool is_clear_type);
517  void SetPrintTextAsGraphic(bool is_to_print_text_graphic);
518 
529  void SetPrintTextAsImage(bool is_to_print_text_image);
530 
541  void SetForceDownSample(bool is_to_force_down_sample);
542 
554  void EnableForPrint(bool is_render_for_print);
555 
566  void SetForceHalftone(bool is_to_force_halftone);
567 
578  void SetRenderPathThinLine(bool is_render_path_thin_line);
579 
590  void SetRenderTextAntiAliasing(bool is_render_text_antialiasing);
591 
602  void SetRenderPathAntiAliasing(bool is_render_path_antialiasing);
603 
615  void SetRenderImageAntiAliasing(bool is_render_image_antialiasing);
616 
617  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
618  explicit Renderer(FS_HANDLE handle = NULL);
619 };
620 } // namespace common
621 } // namespace foxit
622 #endif // FS_RENDER_H_
623 
Definition: fs_pdfgraphicsobject.h:154
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:62
void SetRenderAnnotAppearanceType(foxit::pdf::annots::Annot::AppearanceType ap_type)
Set the annotation's appearance type for rendering.
Renderer & operator=(const Renderer &other)
Assign operator.
IFX_Pause PauseCallback
Definition: fs_common.h:1084
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:1218
void EnableForPrint(bool is_render_for_print)
Set the flag to decide whether to render annotations in print mode.
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:91
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:77
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:70
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:307
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:81
If set, annotations will be rendered.
Definition: fs_render.h:93
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:198
Definition: fs_pdfpage.h:313
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:79
Definition: fx_coordinates.h:590
Definition: fs_basictypes.h:375
Definition: fs_pdflayer.h:246
bool RenderGraphicsObject(const pdf::graphics::GraphicsObject *graphics_object, const pdf::PDFPage &page, const Matrix &matrix)
Render a graphics object.
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.
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_compare.h:27
AppearanceType
Enumeration for the type of annotation's appearance.
Definition: fs_annot.h:1025
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:89
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:771
bool operator==(const Renderer &other) const
Equal operator.
Definition: fx_coordinates.h:1056
void SetPrintTextAsGraphic(bool is_to_print_text_graphic)
Set the flag to decide whether to print text as path or bitmap.
bool RenderFormControls(const pdf::PDFPage &page, const Matrix &matrix)
Render form controls.
void SetClipPathStroke(const Path &clip_path, const Matrix &matrix, const GraphState *graph_state=0)
Set clipping path using stroked region.