pdftron::PDF::PDFDraw Class Reference

PDFDraw contains methods for converting PDF pages to images and to Bitmap objects. More...

#include <PDFDraw.h>

List of all members.

Public Types

enum  PixelFormat {
  e_rgba, e_bgra, e_rgb, e_bgr,
  e_gray
}

Public Member Functions

 PDFDraw (double dpi=92)
 PDFDraw constructor and destructor.
 ~PDFDraw ()
void SetRasterizerType (PDFRasterizer::Type type)
 Sets the core graphics library used for rasterization and rendering.
void SetDPI (double dpi)
 Sets the output image resolution.
void SetImageSize (int width, int height, bool preserve_aspect_ratio=true)
 SetImageSize can be used instead of SetDPI() to adjust page scaling so that image fits into a buffer of given dimensions.
void SetPageBox (Page::Box region)
 Selects the page box/region to rasterize.
void SetFlipYAxis (bool flip_y)
 Flips the vertical (i.e.
void SetRotate (Page::Rotate r)
 Sets the rotation value for this page.
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=true)
 Enables or disables caching.
void SetGamma (double exp)
 Sets the gamma factor used for anti-aliased rendering.
void SetOCGContext (OCG::Context *ctx)
 Sets the Optional Content Group (OCG) context that should be used when rendering the page.
void Export (Page page, const UString &filename, const char *format="PNG", SDF::Obj encoder_params=0)
 A utility method to export the given PDF page to an image file.
void DrawInRect (Page &page, void *hdc, const Rect &rect)
 Gets a GDI+ bitmap for the given page.
const UCharGetBitmap (Page page, int &out_width, int &out_height, int &out_stride, double &out_dpi, PixelFormat pix_fmt=e_bgra)
 Gets the raw rasterized image data for the given image.
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.


Detailed Description

PDFDraw contains methods for converting PDF pages to images and to Bitmap objects.

Utility methods are provided to export PDF pages to various raster formats as well as to convert pages to GDI+ bitmaps for further manipulation or drawing.

Note:
This class is available on all platforms supported by PDFNet.

Member Enumeration Documentation

enum pdftron::PDF::PDFDraw::PixelFormat

Enumerator:
e_rgba 
e_bgra 
e_rgb 
e_bgr 
e_gray 


Constructor & Destructor Documentation

pdftron::PDF::PDFDraw::PDFDraw ( double  dpi = 92  ) 

PDFDraw constructor and destructor.

Parameters:
dpi - Default resolution used to rasterize pages. If the parameter is not specified, the initial resolution is 92 dots per inch. DPI parameter can be modified at any time using PDFDraw::SetDPI() method.

pdftron::PDF::PDFDraw::~PDFDraw (  ) 


Member Function Documentation

void pdftron::PDF::PDFDraw::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, PDFDraw uses the built-in, platform independent rasterizer.

Parameters:
type Rasterizer type.

void pdftron::PDF::PDFDraw::SetDPI ( double  dpi  ) 

Sets the output image resolution.

DPI stands for Dots Per Inch. This parameter is used to specify the output image size and quality. A typical screen resolution for monitors these days is 92 DPI, but printers could use 200 DPI or more.

Note:
The size of resulting image is a function of DPI and the dimensions of the source PDF page. For example, is DPI is 92 and page is 8 inches wide, the output bitmap will have 92*8 = 736 pixels per line. If you know the dimensions of the destination bitmap, but don't care about DPI of the image you can use pdfdraw.SetImageSize() instead.

if you would like to rasterize extremely large bitmaps (e.g. with resolutions of 2000 DPI or more) it is not practical to use PDFDraw directly because of the memory required to store the entire image. In this case, you can use PDFRasterizer directly to generate the rasterized image in stripes or tiles.

void pdftron::PDF::PDFDraw::SetImageSize ( int  width,
int  height,
bool  preserve_aspect_ratio = true 
)

SetImageSize can be used instead of SetDPI() to adjust page scaling so that image fits into a buffer of given dimensions.

If this function is used, DPI will be calculated dynamically for each page so that every page fits into the buffer of given dimensions.

Parameters:
width - The width of the image, in pixels/samples.
height - The height of the image, in pixels/samples.
preserve_aspect_ratio - True to preserve the aspect ratio, false otherwise. By default, preserve_aspect_ratio is true.

void pdftron::PDF::PDFDraw::SetPageBox ( Page::Box  region  ) 

Selects the page box/region to rasterize.

Parameters:
region Page box to rasterize. By default, PDFDraw will rasterize page crop box.

void pdftron::PDF::PDFDraw::SetFlipYAxis ( bool  flip_y  ) 

Flips the vertical (i.e.

Y) axis of the image.

Parameters:
flip_y true to flip the Y axis, false otherwise. For compatibility with most raster formats 'flip_y' is true by default.

void pdftron::PDF::PDFDraw::SetRotate ( Page::Rotate  r  ) 

Sets the rotation value for this page.

Note:
This method is used only for drawing purposes and it does not modify the document (unlike Page::SetRotate()).
Parameters:
angle Rotation value to be set for a given page. Must be one of the Page::Rotate values.

void pdftron::PDF::PDFDraw::SetDrawAnnotations ( bool  render_annots  ) 

Enable or disable annotation and forms rendering.

By default, all annotations and form fields are rendered.

Parameters:
render_annots True to draw annotations, false otherwise.

void pdftron::PDF::PDFDraw::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::PDFDraw::SetImageSmoothing ( bool  smoothing_enabled = true  ) 

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.

Note:
image smoothing option has effect only if the source image has higher resolution that the output resolution of the image on the rasterized page. PDFNet automatically controls at what resolution/zoom factor, 'image smoothing' needs to take effect.
Parameters:
smoothing_enabled True to enable image smoothing, false otherwise. image smoothing is enabled.

void pdftron::PDF::PDFDraw::SetCaching ( bool  enabled = true  ) 

Enables or disables caching.

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

Parameters:
enabled - if true PDFRasterizer will cache frequently used graphics objects.

void pdftron::PDF::PDFDraw::SetGamma ( double  exp  ) 

Sets the gamma factor used for anti-aliased rendering.

Parameters:
exp 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).

Note:
Gamma correction is used only in the built-in rasterizer.

void pdftron::PDF::PDFDraw::SetOCGContext ( OCG::Context 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:
ctx Optional Content Group (OCG) context, or NULL if the rasterizer should render all content on the page.

void pdftron::PDF::PDFDraw::Export ( Page  page,
const UString filename,
const char *  format = "PNG",
SDF::Obj  encoder_params = 0 
)

A utility method to export the given PDF page to an image file.

Parameters:
page The source PDF page.
filename - The name of the output image file. The filename should include the extension suffix (e.g. 'c:/output/myimage.png').
format - The file format of the output image. Currently supported formats are:

By default, the function exports to PNG.

Parameters:
encoder_params - An optional SDF dictionary object containing key/value pairs representing optional encoder parameters. The following table list possible parameters for corresponding export filters:
Output FormatParameter/KeyDescription/ValueExample
JPEG Quality The value for compression 'Quality' must be a number between 0 and 100 specifying the tradeoff between compression ratio and loss in image quality. 100 stands for best quality.See the Example 2 in PDFDraw sample project.

void pdftron::PDF::PDFDraw::DrawInRect ( Page page,
void *  hdc,
const Rect rect 
)

Gets a GDI+ bitmap for the given page.

Parameters:
page The source PDF page.
Returns:
GDI+ bitmap containing the rasterized image of the given page.
Note:
this method is available on .NET platform. Draws the contents of the page to a given device context.

this method is only supported on Windows platforms. If your application is running on a Windows platform, you can select GDI+ rasterizer with SetRasterizerType() and e_GDIPlus type.

Parameters:
page The source PDF page.
hdc Device context (i.e. HDC structure).
rect The rectangle in the device context inside of which the page will be drawn.

const UChar* pdftron::PDF::PDFDraw::GetBitmap ( Page  page,
int &  out_width,
int &  out_height,
int &  out_stride,
double &  out_dpi,
PixelFormat  pix_fmt = e_bgra 
)

Gets the raw rasterized image data for the given image.

Note:
This method is relatively low-level and is only available in PDFNet for C++. If you are using PDFNet for .NET, you can use the function with the same name that directly returns GDI+ Bitmap.
Returns:
a pointer to the internal memory buffer containing the rasterized image of the given page. The buffer size is at least 'out_height*out_stride' bytes. The pixel data is stored in 8 bit per component, BGRA format.
Parameters:
page The source PDF page.
out_width - Filled by the method. The width of the target image in pixels.
out_height - Filled by the method. The height of the target image in pixels (the number of rows).
out_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).
out_dpi - Filled by the method. The output resolution of the image (Dots Per Inch).
pix_fmt - Optional parameter used to specify the desired pixel format. The default pixel format is BGRA.

void pdftron::PDF::PDFDraw::SetErrorReportProc ( PDFRasterizer::ErrorReportProc  error_proc,
void *  data 
)

Sets the error handling function to be called in case an error is encountered during page rendering.

Parameters:
error_proc Error handling callback function (or delegate in .NET)
data Custom data to be passed as a second parameter to 'error_proc'.


© 2002-2008 PDFTron Systems Inc.