# Cairo::PsSurface Class Reference

A PsSurface provides a way to render PostScript documents from cairo. More...

Inheritance diagram for Cairo::PsSurface:
[legend]

List of all members.

## Public Member Functions

| PsSurface (cairo_surface_t*cobject, bool has_reference=false)
| Create a C++ wrapper for the C instance.
virtual | ~PsSurface ()
void | set_size (double width_in_points, double height_in_points)
| Changes the size of a PostScript surface for the current (and subsequent) pages.
void | dsc_comment (std::string comment)
| Emit a comment into the PostScript output for the given surface.
void | dsc_begin_setup ()
| This function indicates that subsequent calls to dsc_comment() should direct comments to the Setup section of the PostScript output.
void | dsc_begin_page_setup ()
| This function indicates that subsequent calls to dsc_comment() should direct comments to the PageSetup section of the PostScript output.
void | set_eps (bool eps)
| If eps is true, the PostScript surface will output Encapsulated PostScript.
bool | get_eps () const
| Check whether the PostScript surface will output Encapsulated PostScript.
void | restrict_to_level (PsLevel level)
| Restricts the generated PostSript file to .

## Static Public Member Functions

static RefPtr< PsSurface > | create (std::string filename, double width_in_points, double height_in_points)
| Creates a PsSurface with a specified dimensions that will be saved as the given filename.
static RefPtr< PsSurface > | create_for_stream (const SlotWriteFunc& write_func, double width_in_points, double height_in_points)
| Creates a PsSurface with a specified dimensions that will be written to the given write function instead of saved directly to disk.
static RefPtr< PsSurface > | create (cairo_write_func_t write_func, void* closure, double width_in_points, double height_in_points)
static const std::vector< PsLevel > | get_levels ()
| Used to retrieve the list of supported levels.
static std::string | level_to_string (PsLevel level)
| Get the string representation of the given level id.

## Detailed Description

A PsSurface provides a way to render PostScript documents from cairo.

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

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

## Constructor & Destructor Documentation

Cairo::PsSurface::PsSurface | ( | 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::PsSurface::~PsSurface | ( |  | ) | `[virtual]`

## Member Function Documentation

static RefPtr<PsSurface> Cairo::PsSurface::create | ( | std::string | filename,
|  | double | width_in_points,
|  | double | height_in_points
| ) |  | `[static]`

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

Parameters:

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

Examples:
  ps-surface.cc.

static RefPtr<PsSurface> Cairo::PsSurface::create | ( | cairo_write_func_t | write_func,
|  | void * | closure,
|  | double | width_in_points,
|  | double | height_in_points
| ) |  | `[static]`

Deprecated:
  use PsSurface::create_for_stream() instead

static RefPtr<PsSurface> Cairo::PsSurface::create_for_stream | ( | const SlotWriteFunc & | write_func,
|  | double | width_in_points,
|  | double | height_in_points
| ) |  | `[static]`

Creates a PsSurface 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 PostScript document in points
  height_in_points | The height of the PostScript document in points

Since:
  1.8

void Cairo::PsSurface::dsc_begin_page_setup | ( |  | ) |

This function indicates that subsequent calls to dsc_comment() should direct comments to the PageSetup section of the PostScript output.

This function call is only needed for the first page of a surface. It should be called after any call to dsc_begin_setup() and before any drawing is performed to the surface.

void Cairo::PsSurface::dsc_begin_setup | ( |  | ) |

This function indicates that subsequent calls to dsc_comment() should direct comments to the Setup section of the PostScript output.

This function should be called at most once per surface, and must be called before any call to dsc_begin_page_setup() and before any drawing is performed to the surface.

void Cairo::PsSurface::dsc_comment | ( | std::string | comment | ) |

Emit a comment into the PostScript output for the given surface.

See the cairo reference documentation for more information.

Parameters:

  comment | a comment string to be emitted into the PostScript output

bool Cairo::PsSurface::get_eps | ( |  | ) | const

Check whether the PostScript surface will output Encapsulated PostScript.

Since:
  1.8

static const std::vector<PsLevel> Cairo::PsSurface::get_levels | ( |  | ) | `[static]`

Used to retrieve the list of supported levels.

See restrict_to_level().

Since:
  1.6

static std::string Cairo::PsSurface::level_to_string | ( | PsLevel | level | ) | `[static]`

Get the string representation of the given level id.

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

Returns:
  the string associated to given level.

Parameters:

  level | a level id

Since:
  1.6

void Cairo::PsSurface::restrict_to_level | ( | PsLevel | level | ) |

Restricts the generated PostSript file to .

See get_levels() for a list of available level 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.

Parameters:

  level | PostScript level

Since:
  1.6

void Cairo::PsSurface::set_eps | ( | bool | eps | ) |

If eps is true, the PostScript surface will output Encapsulated PostScript.

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. An Encapsulated Postscript file should never contain more than one page.

Since:
  1.6

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

Changes the size of a PostScript 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)

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

- cairomm/surface.h