# Cairo::PdfSurface Class Reference

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

Inherits Cairo::Surface.

List of all members.

## Public Member Functions

| PdfSurface (cairo_surface_t*cobject, bool has_reference=false)
| Create a C++ wrapper for the C instance.
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.

## 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.
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.
static RefPtr< PdfSurface > | create (cairo_write_func_t write_func, void* closure, double width_in_points, double height_in_points)

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

Examples:
  pdf-surface.cc.

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

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)

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

- cairomm/surface.h