# Class: PDFRasterizer

## PDFNet. PDFRasterizer

#### new PDFRasterizer()

  PDFRasterizer is a low-level PDF rasterizer.

  The main purpose of this class is to convert PDF pages to raster images (or bitmaps).

### Methods

#### <static> create(type)

  PdFRasterizer constructor and destructor

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `type` | number/enum |
      PDFNet.PDFRasterizer.Type = {
      	e_BuiltIn : 0
      	e_GDIPlus : 1
      }

  ##### Returns:

  A promise that resolves to an object of type: "PDFRasterizer"

  Type
    PDFNet.PDFRasterizer

#### destroy()

  Frees the native memory of the object.

#### enableDisplayListCaching(enabled)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enabled` | boolean |

#### getChunkRendererPath(page, file_path, width, height, demult, device_mtx, clip, scrl_clp_regions, cancel)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `page` | PDFNet.Page |
  `file_path` | string |
  `width` | number |
  `height` | number |
  `demult` | boolean |
  `device_mtx` | PDFNet.Matrix2D |
  `clip` | PDFNet.Rect |
  `scrl_clp_regions` | PDFNet.Rect |
  `cancel` | boolean |

  ##### Returns:

  A promise that resolves to an object of type: "ChunkRenderer"

  Type
    PDFNet.ChunkRenderer

#### getColorPostProcessMode()

  ##### Returns:

  A promise that resolves to the current color post processing mode.

  Type
    number

  ##### Example

      Return value enum:
      <pre>
      PDFNet.PDFRasterizer.ColorPostProcessMode = {
      	e_postprocess_none : 0
      	e_postprocess_invert : 1
      }
      </pre>

#### getRasterizerType()

  ##### Returns:

  A promise that resolves to the type of current rasterizer.

  Type
    number

  ##### Example

      Return value enum:
      <pre>
      PDFNet.PDFRasterizer.Type = {
      	e_BuiltIn : 0
      	e_GDIPlus : 1
      }
      </pre>

#### rasterizeAnnot(annot, page, device_mtx, demult, cancel)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `annot` | PDFNet.Annot |
  `page` | PDFNet.Page |
  `device_mtx` | PDFNet.Matrix2D |
  `demult` | boolean |
  `cancel` | boolean |

  ##### Returns:

  A promise that resolves to an object of type: "OwnedBitmap"

  Type
    PDFNet.OwnedBitmap

#### setAnnotationState(annot, new_view_state)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `annot` | PDFNet.Annot |
  `new_view_state` | number/enum |
      PDFNet.Annot.State = {
      	e_normal : 0
      	e_rollover : 1
      	e_down : 2
      }

#### setAntiAliasing(enable_aa)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enable_aa` | boolean |

#### setCaching(enabled)

  enables or disables caching. Caching can improve the rendering performance in cases where the same page will be drawn multiple times.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enabled` | boolean | if true PDFRasterizer will cache frequently used graphics objects.

#### setColorPostProcessMode(mode)

  Set the color post processing transformation. This transform is applied to the rasterized bitmap as the final step in the rasterization process, and is applied directly to the resulting bitmap (disregarding any color space information). Color post processing only supported for RGBA output.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mode` | number/enum |
      PDFNet.PDFRasterizer.ColorPostProcessMode = {
      	e_postprocess_none : 0
      	e_postprocess_invert : 1
      }
  is the specific transform to be applied

#### setDrawAnnotations(render_annots)

  Enable or disable annotation and forms rendering. By default, annotations and forms are rendered.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `render_annots` | boolean | True to draw annotations, false otherwise.

#### setGamma(expgamma)

  sets the gamma factor used for anti-aliased rendering.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `expgamma` | number | is the exponent value of gamma function. Typical values are in the range from 0.1 to 3. Gamma correction can be used to improve the quality of anti-aliased image output and can (to some extent) decrease the appearance common anti-aliasing artifacts (such as pixel width lines between polygons).

#### setHighlightFields(highlight)

  Enable or disable highlighting form fields. Default is disabled.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `highlight` | boolean | true to highlight, false otherwise.

#### setImageSmoothing(smoothing_enabled, hq_image_resampling)

  Enable or disable image smoothing.

  The rasterizer allows a tradeoff between rendering quality and rendering speed. This function can be used to indicate the preference between rendering speed and quality.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `smoothing_enabled` | boolean | True to enable image smoothing, false otherwise.
  `hq_image_resampling` | boolean | True to use a higher quality (but slower) smoothing algorithm

  Default Value:
    - image smoothing is enabled and hq_image_resampling is false.

#### setOCGContext(ctx)

  sets the Optional Content Group (OCG) context that should be used when rendering the page. This function can be used to selectively render optional content (such as PDF layers) based on the states of optional content groups in the given context.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `ctx` | PDFNet.OCGContext | Optional Content Group (OCG) context, or NULL if the rasterizer should render all content on the page.

#### setOverprint(op)

  enable or disable support for overprint and overprint simulation. Overprint is a device dependent feature and the results will vary depending on the output color space and supported colorants (i.e. CMYK, CMYK+spot, RGB, etc).

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `op` | number/enum |
      PDFNet.PDFRasterizer.OverprintPreviewMode = {
      	e_op_off : 0
      	e_op_on : 1
      	e_op_pdfx_on : 2
      }
  e_op_on: always enabled; e_op_off: always disabled; e_op_pdfx_on: enabled for PDF/X files only.

  Default Value:
    - By default overprint is only enabled for PDF/X files.

#### setPathHinting(enable_hinting)

  Enable or disable path hinting.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enable_hinting` | boolean | if true path hinting is enabled. Path hinting is used to slightly adjust paths in order to avoid or alleviate artifacts of hair line cracks between certain graphical elements. This option is turned on by default.

#### setPrintMode(is_printing)

  tells the rasterizer to render the page 'print' mode. Certain page elements (such as annotations or OCG-s) are meant to be visible either on the screen or on the printed paper but not both. A common example, is the "Submit" button on electronic forms.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `is_printing` | boolean | set to true is the page should be rendered in print mode.

  Default Value:
    - By default, print mode flag is set to false.

#### setRasterizerType(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.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `type` | number/enum |
      PDFNet.PDFRasterizer.Type = {
      	e_BuiltIn : 0
      	e_GDIPlus : 1
      }
  Rasterizer type.

#### setThinLineAdjustment(grid_fit, stroke_adjust)

  Set thin line adjustment parameters.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `grid_fit` | boolean | if true (horizontal/vertical) thin lines will be snapped to integer pixel positions. This helps make thin lines look sharper and clearer. This option is turned off by default and it only works if path hinting is enabled.
  `stroke_adjust` | boolean | if true auto stroke adjustment is enabled. Currently, this would make lines with sub-pixel width to be one-pixel wide. This option is turned on by default.

#### updateBuffer()

  this function is typically called for progressive rendering, in which we don't want to stop the main rendering thread. Since the rendering thread may modify separation channels, we don't consider separations in progressive rendering.

#### Search results