Cairo::PdfSurface Class Reference

A PdfSurface provides a way to render PDF documents from cairo. More...

Inheritance diagram for Cairo::PdfSurface:
[legend]

## Public Member Functions

| PdfSurface (cairo_surface_t*cobject, bool has_reference=false)
| Create a C++ wrapper for the C instance. More...
virtual | ~PdfSurface ()
void | set_size (double width_in_points, double height_in_points)
| Changes the size of a PDF surface for the current (and subsequent) pages. More...
void | restrict_to_version (PdfVersion version)
| Restricts the generated PDF file to version. More...
Public Member Functions inherited from Cairo::Surface
| Surface (cairo_surface_t*cobject, bool has_reference=false)
| Create a C++ wrapper for the C instance. More...
| Surface (const Surface&)=delete
Surface& | operator= (const Surface&)=delete
virtual | ~Surface ()
const unsigned char* | get_mime_data (const std::string& mime_type, unsigned long& length)
| Return mime data previously attached to surface using the specified mime type. More...
void | set_mime_data (const std::string& mime_type, unsigned char* data, unsigned long length, const SlotDestroy& slot_destroy)
| Attach an image in the format mime_type to surface. More...
void | unset_mime_data (const std::string& mime_type)
| Remove the data from a surface. More...
void | get_font_options (FontOptions& options) const
| Retrieves the default font rendering options for the surface. More...
void | finish ()
| This function finishes the surface and drops all references to external resources. More...
void | flush ()
| Do any pending drawing for the surface and also restore any temporary modifications cairo has made to the surface's state. More...
void | mark_dirty ()
| Tells cairo to consider the data buffer dirty. More...
void | mark_dirty (int x, int y, int width, int height)
| Marks a rectangular area of the given surface dirty. More...
void | set_device_offset (double x_offset, double y_offset)
| Sets an offset that is added to the device coordinates determined by the CTM when drawing to surface. More...
void | get_device_offset (double& x_offset, double& y_offset) const
| Returns a previous device offset set by set_device_offset(). More...
void | set_fallback_resolution (double x_pixels_per_inch, double y_pixels_per_inch)
| Set the horizontal and vertical resolution for image fallbacks. More...
void | get_fallback_resolution (double& x_pixels_per_inch, double& y_pixels_per_inch) const
| This function returns the previous fallback resolution set by set_fallback_resolution(), or default fallback resolution if never set. More...
SurfaceType | get_type () const
Content | get_content () const
| This function returns the content type of surface which indicates whether the surface contains color and/or alpha information. More...
void | copy_page ()
| Emits the current page for backends that support multiple pages, but doesn't clear it, so that the contents of the current page will be retained for the next page. More...
void | show_page ()
| Emits and clears the current page for backends that support multiple pages. More...
bool | has_show_text_glyphs () const
| Returns whether the surface supports sophisticated Context::show_text_glyphs() operations. More...
void | write_to_png (const std::string& filename)
| Writes the contents of surface to a new file filename as a PNG image. More...
void | write_to_png_stream (const SlotWriteFunc& write_func)
| Writes the Surface to the write function. More...
void | write_to_png (cairo_write_func_t write_func, void* closure)
RefPtr< Device > | get_device ()
| This function returns the device for a surface. More...
cobject* | cobj ()
| Provides acces to the underlying C cairo surface. More...
const cobject* | cobj () const
| Provides acces to the underlying C cairo surface. More...

## Static Public Member Functions

static RefPtr< PdfSurface > | create (std::string filename, double width_in_points, double height_in_points)
| Creates a PdfSurface with a specified dimensions that will be saved as the given filename. More...
static RefPtr< PdfSurface > | create_for_stream (const SlotWriteFunc& write_func, double width_in_points, double height_in_points)
| Creates a PdfSurface with a specified dimensions that will be written to the given write function instead of saved directly to disk. More...
static RefPtr< PdfSurface > | create (cairo_write_func_t write_func, void* closure, double width_in_points, double height_in_points)
static const std::vector< PdfVersion > | get_versions ()
| Retrieves the list of PDF versions supported by cairo. More...
static std::string | version_to_string (PdfVersion version)
| Get the string representation of the given version id. More...
Static Public Member Functions inherited from Cairo::Surface
static RefPtr< Surface > | create (const RefPtr< Surface > other, Content content, int width, int height)
| Create a new surface that is as compatible as possible with an existing surface. More...
static RefPtr< Surface > | create (const RefPtr< Surface >& target, double x, double y, double width, double height)
| Create a new surface that is a rectangle within the target surface. More...

## Additional Inherited Members

Public Types inherited from Cairo::Surface
typedef sigc::slot< ErrorStatus, const unsigned char*, unsigned int > | SlotWriteFunc
| For example: `ErrorStatus my_write_func(unsigned char* data, unsigned int length);` More...
typedef sigc::slot< ErrorStatus, unsigned char*, unsigned int > | SlotReadFunc
| This is the type of function which is called when a backend needs to read data from an input stream. More...
typedef sigc::slot< void > | SlotDestroy
| For instance, void on_destroy();. More...
typedef cairo_surface_t | cobject
| The underlying C cairo surface type. More...
Protected Attributes inherited from Cairo::Surface
cobject* | m_cobject
| The underlying C cairo surface type that is wrapped by this Surface. More...

## Detailed Description

A PdfSurface provides a way to render PDF documents from cairo.

This surface is not rendered to the screen but instead renders the drawing to a PDF file on disk.

Note
  For this Surface to be available, cairo must have been compiled with PDF support

## Constructor & Destructor Documentation

Cairo::PdfSurface::PdfSurface | ( | cairo_surface_t * | cobject,
|  | bool | has_reference = `false`
| ) |  |

explicit

Create a C++ wrapper for the C instance.

This C++ instance should then be given to a RefPtr.

Parameters

  cobject | The C instance.
  has_reference | whether we already have a reference. Otherwise, the constructor will take an extra reference.

virtual Cairo::PdfSurface::~PdfSurface | ( |  | ) |

virtual

## Member Function Documentation

static RefPtr<PdfSurface> Cairo::PdfSurface::create | ( | std::string | filename,
|  | double | width_in_points,
|  | double | height_in_points
| ) |  |

static

Creates a PdfSurface with a specified dimensions that will be saved as the given filename.

Parameters

  filename | The name of the PDF file to save the surface to
  width_in_points | The width of the PDF document in points
  height_in_points | The height of the PDF document in points

Since
  1.2

Examples:
  pdf-surface.cc.

static RefPtr<PdfSurface> Cairo::PdfSurface::create | ( | cairo_write_func_t | write_func,
|  | void * | closure,
|  | double | width_in_points,
|  | double | height_in_points
| ) |  |

static

Deprecated:
  use PdfSurface::create_for_stream() instead

static RefPtr<PdfSurface> Cairo::PdfSurface::create_for_stream | ( | const SlotWriteFunc& | write_func,
|  | double | width_in_points,
|  | double | height_in_points
| ) |  |

static

Creates a PdfSurface with a specified dimensions that will be written to the given write function instead of saved directly to disk.

Parameters

  write_func | The function to be called when the backend needs to write data to an output stream
  width_in_points | The width of the PDF document in points
  height_in_points | The height of the PDF document in points

Since
  1.8

static const std::vector<PdfVersion> Cairo::PdfSurface::get_versions | ( |  | ) |

static

Retrieves the list of PDF versions supported by cairo.

See restrict_to_version().

Since
  1.10

void Cairo::PdfSurface::restrict_to_version | ( | PdfVersion | version | ) |

Restricts the generated PDF file to version.

See get_versions() for a list of available version values that can be used here.

This function should only be called before any drawing operations have been performed on the given surface. The simplest way to do this is to call this function immediately after creating the surface.

Since
  1.10

void Cairo::PdfSurface::set_size | ( | double | width_in_points,
|  | double | height_in_points
| ) |  |

Changes the size of a PDF surface for the current (and subsequent) pages.

This function should only be called before any drawing operations have been performed on the current page. The simplest way to do this is to call this function immediately after creating the surface or immediately after completing a page with either Context::show_page() or Context::copy_page().

Parameters

  width_in_points | new surface width, in points (1 point == 1/72.0 inch)
  height_in_points | new surface height, in points (1 point == 1/72.0 inch)

static std::string Cairo::PdfSurface::version_to_string | ( | PdfVersion | version | ) |

static

Get the string representation of the given version id.

This function will return an empty string if version isn't valid. See get_versions() for a way to get the list of valid version ids.

Since
  1.10

The documentation for this class was generated from the following file:

- cairomm/surface.h