GXPSPage

## GXPSPage GXPSPage — Page of XPS document |

## Synopsis

    #include <libgxps/gxps.h>

    struct              GXPSPage;
    #define             GXPS_PAGE_ERROR
    enum                GXPSPageError;
    void                gxps_page_get_size                  (GXPSPage *page,
                                                             gdouble *width,
                                                             gdouble *height);
    gboolean            gxps_page_render                    (GXPSPage *page,
                                                             cairo_t *cr,
                                                             GError **error);
    GList *             gxps_page_get_links                 (GXPSPage *page,
                                                             GError **error);
    gboolean            gxps_page_get_anchor_destination    (GXPSPage *page,
                                                             const gchar *anchor,
                                                             cairo_rectangle_t *area,
                                                             GError **error);

## Object Hierarchy

      GObject
       +----GXPSPage

## Implemented Interfaces

GXPSPage implements GInitable.

## Properties

      "archive"                  GXPSArchive*          : Write / Construct Only
      "source"                   gchar*                : Write / Construct Only

## Description

GXPSPage represents a page in a XPS document. GXPSPages can be rendered into a cairo context with `gxps_page_render()`. GXPSPage objects can not be created directly, they are retrieved from a GXPSDocument with `gxps_document_get_page()`.

## Details

### struct GXPSPage

    struct GXPSPage;

The GXPSPage struct contains only private fields and should not be directly accessed.

### GXPS_PAGE_ERROR

    #define GXPS_PAGE_ERROR          (gxps_page_error_quark ())

Error domain for GXPSPage. Errors in this domain will be from GXPSPageError enumeration. See GError for more information on error domains.

### enum GXPSPageError

    typedef enum {
    	GXPS_PAGE_ERROR_INVALID,
    	GXPS_PAGE_ERROR_RENDER,
    	GXPS_PAGE_ERROR_INVALID_ANCHOR
    } GXPSPageError;

Error codes returned by GXPSPage functions

`GXPS_PAGE_ERROR_INVALID` | The page is invalid.
`GXPS_PAGE_ERROR_RENDER` | Error rendering the page.
`GXPS_PAGE_ERROR_INVALID_ANCHOR` | Anchor is invalid for the page.

### gxps_page_get_size ()

    void                gxps_page_get_size                  (GXPSPage *page,
                                                             gdouble *width,
                                                             gdouble *height);

Gets the size of the page.

`page` : | a GXPSPage
`width` : | return location for the page width. [out][allow-none]
`height` : | return location for the page height. [out][allow-none]

### gxps_page_render ()

    gboolean            gxps_page_render                    (GXPSPage *page,
                                                             cairo_t *cr,
                                                             GError **error);

Render the page to the given cairo context. In case of error, `FALSE` is returned and `error` is filled with information about error.

`page` : | a GXPSPage
`cr` : | a cairo context to render to
`error` : | GError for error reporting, or `NULL` to ignore
Returns : | `TRUE` if page was successfully rendered, `FALSE` otherwise.

### gxps_page_get_links ()

    GList *             gxps_page_get_links                 (GXPSPage *page,
                                                             GError **error);

Gets a list of GXPSLink items that map from a location in `page` to a GXPSLinkTarget. Items in the list should be freed with `gxps_link_free()` and the list itself with `g_list_free()` when done.

`page` : | a GXPSPage
`error` : | GError for error reporting, or `NULL` to ignore
Returns : | a GList of GXPSLink items. [element-type GXPS.Link][transfer full]

### gxps_page_get_anchor_destination ()

    gboolean            gxps_page_get_anchor_destination    (GXPSPage *page,
                                                             const gchar *anchor,
                                                             cairo_rectangle_t *area,
                                                             GError **error);

Gets the rectangle of `page` corresponding to the destination of the given anchor. If `anchor` is not found in `page`, `FALSE` will be returned and `error` will contain `GXPS_PAGE_ERROR_INVALID_ANCHOR`

`page` : | a GXPSPage
`anchor` : | the name of an anchor in `page`
`area` : | return location for page area of `anchor`. [out]
`error` : | GError for error reporting, or `NULL` to ignore
Returns : | `TRUE` if the destination for the anchor was found in page and `area` contains the rectangle, `FALSE` otherwise.

## Property Details

### The `"archive"` property

      "archive"                  GXPSArchive*          : Write / Construct Only

The document archive.

### The `"source"` property

      "source"                   gchar*                : Write / Construct Only

The Page Source File.

Default value: NULL

## See Also

GXPSDocument, GXPSLink, GXPSLinkTarget