## PopplerPage

PopplerPage — Information about a page in a document

## Synopsis

    #include <poppler.h>

                        PopplerPage;
                        PopplerRectangle;
                        PopplerPageTransition;
                        PopplerLinkMapping;
                        PopplerImageMapping;
                        PopplerFormFieldMapping;
                        PopplerAnnotMapping;
    enum                PopplerPageTransitionType;
    enum                PopplerPageTransitionAlignment;
    enum                PopplerPageTransitionDirection;
    enum                PopplerSelectionStyle;
    int                 poppler_page_get_index              (PopplerPage *page);
    gchar *             poppler_page_get_label              (PopplerPage *page);
    void                poppler_page_get_size               (PopplerPage *page,
                                                             double *width,
                                                             double *height);
    void                poppler_page_get_crop_box           (PopplerPage *page,
                                                             PopplerRectangle *rect);
    double              poppler_page_get_duration           (PopplerPage *page);
    PopplerPageTransition * poppler_page_get_transition     (PopplerPage *page);
    gboolean            poppler_page_get_thumbnail_size     (PopplerPage *page,
                                                             int *width,
                                                             int *height);
    cairo_surface_t *   poppler_page_get_thumbnail          (PopplerPage *page);
    GdkPixbuf *         poppler_page_get_thumbnail_pixbuf   (PopplerPage *page);
    void                poppler_page_render                 (PopplerPage *page,
                                                             cairo_t *cairo);
    void                poppler_page_render_for_printing    (PopplerPage *page,
                                                             cairo_t *cairo);
    void                poppler_page_render_for_printing_with_options
                                                            (PopplerPage *page,
                                                             cairo_t *cairo,
                                                             PopplerPrintFlags options);
    void                poppler_page_render_to_pixbuf       (PopplerPage *page,
                                                             int src_x,
                                                             int src_y,
                                                             int src_width,
                                                             int src_height,
                                                             double scale,
                                                             int rotation,
                                                             GdkPixbuf *pixbuf);
    void                poppler_page_render_to_pixbuf_for_printing
                                                            (PopplerPage *page,
                                                             int src_x,
                                                             int src_y,
                                                             int src_width,
                                                             int src_height,
                                                             double scale,
                                                             int rotation,
                                                             GdkPixbuf *pixbuf);
    void                poppler_page_render_to_ps           (PopplerPage *page,
                                                             PopplerPSFile *ps_file);
    void                poppler_page_render_selection       (PopplerPage *page,
                                                             cairo_t *cairo,
                                                             PopplerRectangle *selection,
                                                             PopplerRectangle *old_selection,
                                                             PopplerSelectionStyle style,
                                                             PopplerColor *glyph_color,
                                                             PopplerColor *background_color);
    void                poppler_page_render_selection_to_pixbuf
                                                            (PopplerPage *page,
                                                             gdouble scale,
                                                             int rotation,
                                                             GdkPixbuf *pixbuf,
                                                             PopplerRectangle *selection,
                                                             PopplerRectangle *old_selection,
                                                             PopplerSelectionStyle style,
                                                             GdkColor *glyph_color,
                                                             GdkColor *background_color);
    cairo_region_t *    poppler_page_get_selected_region    (PopplerPage *page,
                                                             gdouble scale,
                                                             PopplerSelectionStyle style,
                                                             PopplerRectangle *selection);
    GList *             poppler_page_get_selection_region   (PopplerPage *page,
                                                             gdouble scale,
                                                             PopplerSelectionStyle style,
                                                             PopplerRectangle *selection);
    void                poppler_page_selection_region_free  (GList *region);
    char *              poppler_page_get_selected_text      (PopplerPage *page,
                                                             PopplerSelectionStyle style,
                                                             PopplerRectangle *selection);
    GList *             poppler_page_find_text              (PopplerPage *page,
                                                             const char *text);
    char *              poppler_page_get_text               (PopplerPage *page);
    gboolean            poppler_page_get_text_layout        (PopplerPage *page,
                                                             PopplerRectangle **rectangles,
                                                             guint *n_rectangles);
    GList *             poppler_page_get_link_mapping       (PopplerPage *page);
    void                poppler_page_free_link_mapping      (GList *list);
    GList *             poppler_page_get_image_mapping      (PopplerPage *page);
    cairo_surface_t *   poppler_page_get_image              (PopplerPage *page,
                                                             gint image_id);
    void                poppler_page_free_image_mapping     (GList *list);
    GList *             poppler_page_get_form_field_mapping (PopplerPage *page);
    void                poppler_page_free_form_field_mapping
                                                            (GList *list);
    GList *             poppler_page_get_annot_mapping      (PopplerPage *page);
    void                poppler_page_free_annot_mapping     (GList *list);
    void                poppler_page_add_annot              (PopplerPage *page,
                                                             PopplerAnnot *annot);
    PopplerRectangle *  poppler_rectangle_new               (void);
    PopplerRectangle *  poppler_rectangle_copy              (PopplerRectangle *rectangle);
    void                poppler_rectangle_free              (PopplerRectangle *rectangle);
    PopplerPageTransition * poppler_page_transition_new     (void);
    PopplerPageTransition * poppler_page_transition_copy    (PopplerPageTransition *transition);
    void                poppler_page_transition_free        (PopplerPageTransition *transition);
    PopplerLinkMapping * poppler_link_mapping_new           (void);
    PopplerLinkMapping * poppler_link_mapping_copy          (PopplerLinkMapping *mapping);
    void                poppler_link_mapping_free           (PopplerLinkMapping *mapping);
    PopplerImageMapping * poppler_image_mapping_new         (void);
    PopplerImageMapping * poppler_image_mapping_copy        (PopplerImageMapping *mapping);
    void                poppler_image_mapping_free          (PopplerImageMapping *mapping);
    PopplerFormFieldMapping * poppler_form_field_mapping_new
                                                            (void);
    PopplerFormFieldMapping * poppler_form_field_mapping_copy
                                                            (PopplerFormFieldMapping *mapping);
    void                poppler_form_field_mapping_free     (PopplerFormFieldMapping *mapping);
    PopplerAnnotMapping * poppler_annot_mapping_new         (void);
    PopplerAnnotMapping * poppler_annot_mapping_copy        (PopplerAnnotMapping *mapping);
    void                poppler_annot_mapping_free          (PopplerAnnotMapping *mapping);

## Object Hierarchy

      GObject
       +----PopplerPage

## Properties

      "label"                    gchar*                : Read

## Description

## Details

### PopplerPage

    typedef struct _PopplerPage PopplerPage;

### PopplerRectangle

    typedef struct {
      gdouble x1;
      gdouble y1;
      gdouble x2;
      gdouble y2;
    } PopplerRectangle;

A PopplerRectangle is used to describe locations on a page and bounding boxes

gdouble `x1`; | x coordinate of lower left corner
gdouble `y1`; | y coordinate of lower left corner
gdouble `x2`; | x coordinate of upper right corner
gdouble `y2`; | y coordinate of upper right corner

### PopplerPageTransition

    typedef struct {
      PopplerPageTransitionType type;
      PopplerPageTransitionAlignment alignment;
      PopplerPageTransitionDirection direction;
      gint duration;
      gint angle;
      gdouble scale;
      gboolean rectangular;
    } PopplerPageTransition;

A PopplerPageTransition structures describes a visual transition to use when moving between pages during a presentation

PopplerPageTransitionType `type`; | the type of transtition
PopplerPageTransitionAlignment `alignment`; | the dimension in which the transition effect shall occur. Only for POPPLER_PAGE_TRANSITION_SPLIT and POPPLER_PAGE_TRANSITION_BLINDS transition types
PopplerPageTransitionDirection `direction`; | the direccion of motion for the transition effect. Only for POPPLER_PAGE_TRANSITION_SPLIT, POPPLER_PAGE_TRANSITION_BOX and POPPLER_PAGE_TRANSITION_FLY transition types
gint `duration`; | the duration of the transition effect
gint `angle`; | the direction in which the specified transition effect shall moves, expressed in degrees counterclockwise starting from a left-to-right direction. Only for POPPLER_PAGE_TRANSITION_WIPE, POPPLER_PAGE_TRANSITION_GLITTER, POPPLER_PAGE_TRANSITION_FLY, POPPLER_PAGE_TRANSITION_COVER, POPPLER_PAGE_TRANSITION_UNCOVER and POPPLER_PAGE_TRANSITION_PUSH transition types
gdouble `scale`; | the starting or ending scale at which the changes shall be drawn. Only for POPPLER_PAGE_TRANSITION_FLY transition type
gboolean `rectangular`; | whether the area that will be flown is rectangular and opaque. Only for POPPLER_PAGE_TRANSITION_FLY transition type

### PopplerLinkMapping

    typedef struct {
      PopplerRectangle area;
      PopplerAction *action;
    } PopplerLinkMapping;

A PopplerLinkMapping structure represents the location of `action` on the page

PopplerRectangle `area`; | a PopplerRectangle representing an area of the page
PopplerAction *`action`; | a PopplerAction

### PopplerImageMapping

    typedef struct {
      PopplerRectangle area;
      gint image_id;
    } PopplerImageMapping;

A PopplerImageMapping structure represents the location of an image on the page

PopplerRectangle `area`; | a PopplerRectangle representing an area of the page
gint `image_id`; | an image identifier

### PopplerFormFieldMapping

    typedef struct {
      PopplerRectangle area;
      PopplerFormField *field;
    } PopplerFormFieldMapping;

A PopplerFormFieldMapping structure represents the location of `field` on the page

PopplerRectangle `area`; | a PopplerRectangle representing an area of the page
PopplerFormField *`field`; | a PopplerFormField

### PopplerAnnotMapping

    typedef struct {
      PopplerRectangle area;
      PopplerAnnot *annot;
    } PopplerAnnotMapping;

A PopplerAnnotMapping structure represents the location of `annot` on the page

PopplerRectangle `area`; | a PopplerRectangle representing an area of the page
PopplerAnnot *`annot`; | a PopplerAannot

### enum PopplerPageTransitionType

    typedef enum
    {
      POPPLER_PAGE_TRANSITION_REPLACE,
      POPPLER_PAGE_TRANSITION_SPLIT,
      POPPLER_PAGE_TRANSITION_BLINDS,
      POPPLER_PAGE_TRANSITION_BOX,
      POPPLER_PAGE_TRANSITION_WIPE,
      POPPLER_PAGE_TRANSITION_DISSOLVE,
      POPPLER_PAGE_TRANSITION_GLITTER,
      POPPLER_PAGE_TRANSITION_FLY,
      POPPLER_PAGE_TRANSITION_PUSH,
      POPPLER_PAGE_TRANSITION_COVER,
      POPPLER_PAGE_TRANSITION_UNCOVER,
      POPPLER_PAGE_TRANSITION_FADE
    } PopplerPageTransitionType;

Page transition types

`POPPLER_PAGE_TRANSITION_REPLACE` | the new page replace the old one
`POPPLER_PAGE_TRANSITION_SPLIT` | two lines sweep across the screen, revealing the new page
`POPPLER_PAGE_TRANSITION_BLINDS` | multiple lines, evenly spaced across the screen, synchronously sweep in the same direction to reveal the new page
`POPPLER_PAGE_TRANSITION_BOX` | a rectangular box sweeps inward from the edges of the page or outward from the center revealing the new page
`POPPLER_PAGE_TRANSITION_WIPE` | a single line sweeps across the screen from one edge to the other revealing the new page
`POPPLER_PAGE_TRANSITION_DISSOLVE` | the old page dissolves gradually to reveal the new one
`POPPLER_PAGE_TRANSITION_GLITTER` | similar to POPPLER_PAGE_TRANSITION_DISSOLVE, except that the effect sweeps across the page in a wide band moving from one side of the screen to the other
`POPPLER_PAGE_TRANSITION_FLY` | changes are flown out or in to or from a location that is offscreen
`POPPLER_PAGE_TRANSITION_PUSH` | the old page slides off the screen while the new page slides in
`POPPLER_PAGE_TRANSITION_COVER` | the new page slides on to the screen covering the old page
`POPPLER_PAGE_TRANSITION_UNCOVER` | the old page slides off the screen uncovering the new page
`POPPLER_PAGE_TRANSITION_FADE` | the new page gradually becomes visible through the old one

### enum PopplerPageTransitionAlignment

    typedef enum
    {
      POPPLER_PAGE_TRANSITION_HORIZONTAL,
      POPPLER_PAGE_TRANSITION_VERTICAL
    } PopplerPageTransitionAlignment;

Page transition alignment types for POPPLER_PAGE_TRANSITION_SPLIT and POPPLER_PAGE_TRANSITION_BLINDS transition types

`POPPLER_PAGE_TRANSITION_HORIZONTAL` | horizontal dimension
`POPPLER_PAGE_TRANSITION_VERTICAL` | vertical dimension

### enum PopplerPageTransitionDirection

    typedef enum
    {
      POPPLER_PAGE_TRANSITION_INWARD,
      POPPLER_PAGE_TRANSITION_OUTWARD
    } PopplerPageTransitionDirection;

Page transition direction types for POPPLER_PAGE_TRANSITION_SPLIT, POPPLER_PAGE_TRANSITION_BOX and POPPLER_PAGE_TRANSITION_FLY transition types

`POPPLER_PAGE_TRANSITION_INWARD` | inward from the edges of the page
`POPPLER_PAGE_TRANSITION_OUTWARD` | outward from the center of the page

### enum PopplerSelectionStyle

    typedef enum
    {
      POPPLER_SELECTION_GLYPH,
      POPPLER_SELECTION_WORD,
      POPPLER_SELECTION_LINE
    } PopplerSelectionStyle;

Selection styles

`POPPLER_SELECTION_GLYPH` | glyph is the minimum unit for selection
`POPPLER_SELECTION_WORD` | word is the minimum unit for selection
`POPPLER_SELECTION_LINE` | line is the minimum unit for selection

### poppler_page_get_index ()

    int                 poppler_page_get_index              (PopplerPage *page);

Returns the index of `page`

`page` : | a PopplerPage
Returns : | index value of `page`

### poppler_page_get_label ()

    gchar *             poppler_page_get_label              (PopplerPage *page);

Returns the label of `page`. Note that page labels and page indices might not coincide.

`page` : | a PopplerPage
Returns : | a new allocated string containing the label of `page`, or `NULL` if `page` doesn't have a label

Since 0.16

### poppler_page_get_size ()

    void                poppler_page_get_size               (PopplerPage *page,
                                                             double *width,
                                                             double *height);

Gets the size of `page` at the current scale and rotation.

`page` : | A PopplerPage
`width` : | return location for the width of `page`. [out][allow-none]
`height` : | return location for the height of `page`. [out][allow-none]

### poppler_page_get_crop_box ()

    void                poppler_page_get_crop_box           (PopplerPage *page,
                                                             PopplerRectangle *rect);

Retrurns the crop box of `page`

`page` : | a PopplerPage
`rect` : | a PopplerRectangle to fill. [out]

### poppler_page_get_duration ()

    double              poppler_page_get_duration           (PopplerPage *page);

Returns the duration of `page`

`page` : | a PopplerPage
Returns : | duration in seconds of `page` or -1.

### poppler_page_get_transition ()

    PopplerPageTransition * poppler_page_get_transition     (PopplerPage *page);

Returns the transition effect of `page`

`page` : | a PopplerPage
Returns : | a PopplerPageTransition or NULL.

### poppler_page_get_thumbnail_size ()

    gboolean            poppler_page_get_thumbnail_size     (PopplerPage *page,
                                                             int *width,
                                                             int *height);

Returns `TRUE` if `page` has a thumbnail associated with it. It also fills in `width` and `height` with the width and height of the thumbnail. The values of width and height are not changed if no appropriate thumbnail exists.

`page` : | A PopplerPage
`width` : | (out) return location for width
`height` : | (out) return location for height
Returns : | `TRUE`, if `page` has a thumbnail associated with it.

### poppler_page_get_thumbnail ()

    cairo_surface_t *   poppler_page_get_thumbnail          (PopplerPage *page);

Get the embedded thumbnail for the specified page. If the document doesn't have an embedded thumbnail for the page, this function returns `NULL`.

`page` : | the PopperPage to get the thumbnail for
Returns : | the tumbnail as a cairo_surface_t or `NULL` if the document doesn't have a thumbnail for this page.

### poppler_page_get_thumbnail_pixbuf ()

    GdkPixbuf *         poppler_page_get_thumbnail_pixbuf   (PopplerPage *page);

### Warning

`poppler_page_get_thumbnail_pixbuf` is deprecated and should not be used in newly-written code. 0.16

Get the embedded thumbnail for the specified page. If the document doesn't have an embedded thumbnail for the page, this function returns `NULL`.

`page` : | the PopperPage to get the thumbnail for
Returns : | the tumbnail as a GdkPixbuf or `NULL` if the document doesn't have a thumbnail for this page.

### poppler_page_render ()

    void                poppler_page_render                 (PopplerPage *page,
                                                             cairo_t *cairo);

Render the page to the given cairo context. This function is for rendering a page that will be displayed. If you want to render a page that will be printed use `poppler_page_render_for_printing()` instead

`page` : | the page to render from
`cairo` : | cairo context to render to

### poppler_page_render_for_printing ()

    void                poppler_page_render_for_printing    (PopplerPage *page,
                                                             cairo_t *cairo);

Render the page to the given cairo context for printing.

`page` : | the page to render from
`cairo` : | cairo context to render to

### poppler_page_render_for_printing_with_options ()

    void                poppler_page_render_for_printing_with_options
                                                            (PopplerPage *page,
                                                             cairo_t *cairo,
                                                             PopplerPrintFlags options);

Render the page to the given cairo context for printing with the specified options

`page` : | the page to render from
`cairo` : | cairo context to render to
`options` : | print options

Since 0.16

### poppler_page_render_to_pixbuf ()

    void                poppler_page_render_to_pixbuf       (PopplerPage *page,
                                                             int src_x,
                                                             int src_y,
                                                             int src_width,
                                                             int src_height,
                                                             double scale,
                                                             int rotation,
                                                             GdkPixbuf *pixbuf);

### Warning

`poppler_page_render_to_pixbuf` is deprecated and should not be used in newly-written code. 0.16

First scale the document to match the specified pixels per point, then render the rectangle given by the upper left corner at (src_x, src_y) and src_width and src_height. This function is for rendering a page that will be displayed. If you want to render a page that will be printed use `poppler_page_render_to_pixbuf_for_printing()` instead

`page` : | the page to render from
`src_x` : | x coordinate of upper left corner
`src_y` : | y coordinate of upper left corner
`src_width` : | width of rectangle to render
`src_height` : | height of rectangle to render
`scale` : | scale specified as pixels per point
`rotation` : | rotate the document by the specified degree
`pixbuf` : | pixbuf to render into

### poppler_page_render_to_pixbuf_for_printing ()

    void                poppler_page_render_to_pixbuf_for_printing
                                                            (PopplerPage *page,
                                                             int src_x,
                                                             int src_y,
                                                             int src_width,
                                                             int src_height,
                                                             double scale,
                                                             int rotation,
                                                             GdkPixbuf *pixbuf);

### Warning

`poppler_page_render_to_pixbuf_for_printing` is deprecated and should not be used in newly-written code. 0.16

First scale the document to match the specified pixels per point, then render the rectangle given by the upper left corner at (src_x, src_y) and src_width and src_height. This function is for rendering a page that will be printed.

`page` : | the page to render from
`src_x` : | x coordinate of upper left corner
`src_y` : | y coordinate of upper left corner
`src_width` : | width of rectangle to render
`src_height` : | height of rectangle to render
`scale` : | scale specified as pixels per point
`rotation` : | rotate the document by the specified degree
`pixbuf` : | pixbuf to render into

### poppler_page_render_to_ps ()

    void                poppler_page_render_to_ps           (PopplerPage *page,
                                                             PopplerPSFile *ps_file);

Render the page on a postscript file

`page` : | a PopplerPage
`ps_file` : | the PopplerPSFile to render to

### poppler_page_render_selection ()

    void                poppler_page_render_selection       (PopplerPage *page,
                                                             cairo_t *cairo,
                                                             PopplerRectangle *selection,
                                                             PopplerRectangle *old_selection,
                                                             PopplerSelectionStyle style,
                                                             PopplerColor *glyph_color,
                                                             PopplerColor *background_color);

Render the selection specified by `selection` for `page` to the given cairo context. The selection will be rendered, using `glyph_color` for the glyphs and `background_color` for the selection background.

If non-NULL, `old_selection` specifies the selection that is already rendered to `cairo`, in which case this function will (some day) only render the changed part of the selection.

`page` : | the PopplerPage for which to render selection
`cairo` : | cairo context to render to
`selection` : | start and end point of selection as a rectangle
`old_selection` : | previous selection
`style` : | a PopplerSelectionStyle
`glyph_color` : | color to use for drawing glyphs
`background_color` : | color to use for the selection background

### poppler_page_render_selection_to_pixbuf ()

    void                poppler_page_render_selection_to_pixbuf
                                                            (PopplerPage *page,
                                                             gdouble scale,
                                                             int rotation,
                                                             GdkPixbuf *pixbuf,
                                                             PopplerRectangle *selection,
                                                             PopplerRectangle *old_selection,
                                                             PopplerSelectionStyle style,
                                                             GdkColor *glyph_color,
                                                             GdkColor *background_color);

### Warning

`poppler_page_render_selection_to_pixbuf` is deprecated and should not be used in newly-written code. 0.16

Render the selection specified by `selection` for `page` into `pixbuf`. The selection will be rendered at `scale`, using `glyph_color` for the glyphs and `background_color` for the selection background.

If non-NULL, `old_selection` specifies the selection that is already rendered in `pixbuf`, in which case this function will (some day) only render the changed part of the selection.

`page` : | the PopplerPage for which to render selection
`scale` : | scale specified as pixels per point
`rotation` : | rotate the document by the specified degree
`pixbuf` : | pixbuf to render to
`selection` : | start and end point of selection as a rectangle
`old_selection` : | previous selection
`style` : | a PopplerSelectionStyle
`glyph_color` : | color to use for drawing glyphs
`background_color` : | color to use for the selection background

### poppler_page_get_selected_region ()

    cairo_region_t *    poppler_page_get_selected_region    (PopplerPage *page,
                                                             gdouble scale,
                                                             PopplerSelectionStyle style,
                                                             PopplerRectangle *selection);

Returns a region containing the area that would be rendered by `poppler_page_render_selection()` or `poppler_page_render_selection_to_pixbuf()`. The returned region must be freed with `cairo_region_destroy()`

`page` : | a PopplerPage
`scale` : | scale specified as pixels per point
`style` : | a PopplerSelectionStyle
`selection` : | start and end point of selection as a rectangle
Returns : | a cairo_region_t. [transfer full]

Since 0.16

### poppler_page_get_selection_region ()

    GList *             poppler_page_get_selection_region   (PopplerPage *page,
                                                             gdouble scale,
                                                             PopplerSelectionStyle style,
                                                             PopplerRectangle *selection);

### Warning

`poppler_page_get_selection_region` has been deprecated since version 0.16 and should not be used in newly-written code. Use `poppler_page_get_selected_region()` instead.

Returns a region containing the area that would be rendered by `poppler_page_render_selection()` or `poppler_page_render_selection_to_pixbuf()` as a GList of PopplerRectangle. The returned list must be freed with `poppler_page_selection_region_free()`.

`page` : | a PopplerPage
`scale` : | scale specified as pixels per point
`style` : | a PopplerSelectionStyle
`selection` : | start and end point of selection as a rectangle
Returns : | a GList of PopplerRectangle. [element-type PopplerRectangle][transfer full]

### poppler_page_selection_region_free ()

    void                poppler_page_selection_region_free  (GList *region);

### Warning

`poppler_page_selection_region_free` is deprecated and should not be used in newly-written code. 0.16

Frees `region`

`region` : | a GList of PopplerRectangle

### poppler_page_get_selected_text ()

    char *              poppler_page_get_selected_text      (PopplerPage *page,
                                                             PopplerSelectionStyle style,
                                                             PopplerRectangle *selection);

Retrieves the contents of the specified `selection` as text.

`page` : | a PopplerPage
`style` : | a PopplerSelectionStyle
`selection` : | the PopplerRectangle including the text
Returns : | a pointer to the contents of the `selection` as a string

Since 0.16

### poppler_page_find_text ()

    GList *             poppler_page_find_text              (PopplerPage *page,
                                                             const char *text);

A GList of rectangles for each occurance of the text on the page. The coordinates are in PDF points.

`page` : | a PopplerPage
`text` : | the text to search for (UTF-8 encoded)
Returns : | a GList of PopplerRectangle,. [element-type PopplerRectangle][transfer full]

### poppler_page_get_text ()

    char *              poppler_page_get_text               (PopplerPage *page);

Retrieves the text of `page`.

`page` : | a PopplerPage
Returns : | a pointer to the text of the `page` as a string

Since 0.16

### poppler_page_get_text_layout ()

    gboolean            poppler_page_get_text_layout        (PopplerPage *page,
                                                             PopplerRectangle **rectangles,
                                                             guint *n_rectangles);

Obtains the layout of the text as a list of PopplerRectangle This array must be freed with `g_free()` when done.

The position in the array represents an offset in the text returned by `poppler_page_get_text()`

`page` : | A PopplerPage
`rectangles` : | return location for an array of PopplerRectangle. [out][array length=n_rectangles][transfer container]
`n_rectangles` : | (out) length of returned array
Returns : | `TRUE` if the page contains text, `FALSE` otherwise

Since 0.16

### poppler_page_get_link_mapping ()

    GList *             poppler_page_get_link_mapping       (PopplerPage *page);

Returns a list of PopplerLinkMapping items that map from a location on `page` to a PopplerAction. This list must be freed with `poppler_page_free_link_mapping()` when done.

`page` : | A PopplerPage
Returns : | A GList of PopplerLinkMapping. [element-type PopplerLinkMapping][transfer full]

### poppler_page_free_link_mapping ()

    void                poppler_page_free_link_mapping      (GList *list);

Frees a list of PopplerLinkMappings allocated by `poppler_page_get_link_mapping()`. It also frees the PopplerActions that each mapping contains, so if you want to keep them around, you need to copy them with `poppler_action_copy()`.

`list` : | A list of PopplerLinkMappings

### poppler_page_get_image_mapping ()

    GList *             poppler_page_get_image_mapping      (PopplerPage *page);

Returns a list of PopplerImageMapping items that map from a location on `page` to an image of the page. This list must be freed with `poppler_page_free_image_mapping()` when done.

`page` : | A PopplerPage
Returns : | A GList of PopplerImageMapping. [element-type PopplerImageMapping][transfer full]

### poppler_page_get_image ()

    cairo_surface_t *   poppler_page_get_image              (PopplerPage *page,
                                                             gint image_id);

Returns a cairo surface for the image of the `page`

`page` : | A PopplerPage
`image_id` : | The image identificator
Returns : | A cairo surface for the image

### poppler_page_free_image_mapping ()

    void                poppler_page_free_image_mapping     (GList *list);

Frees a list of PopplerImageMappings allocated by `poppler_page_get_image_mapping()`.

`list` : | A list of PopplerImageMappings

### poppler_page_get_form_field_mapping ()

    GList *             poppler_page_get_form_field_mapping (PopplerPage *page);

Returns a list of PopplerFormFieldMapping items that map from a location on `page` to a form field. This list must be freed with `poppler_page_free_form_field_mapping()` when done.

`page` : | A PopplerPage
Returns : | A GList of PopplerFormFieldMapping. [element-type PopplerFormFieldMapping][transfer full]

### poppler_page_free_form_field_mapping ()

    void                poppler_page_free_form_field_mapping
                                                            (GList *list);

Frees a list of PopplerFormFieldMappings allocated by `poppler_page_get_form_field_mapping()`.

`list` : | A list of PopplerFormFieldMappings

### poppler_page_get_annot_mapping ()

    GList *             poppler_page_get_annot_mapping      (PopplerPage *page);

Returns a list of PopplerAnnotMapping items that map from a location on `page` to a PopplerAnnot. This list must be freed with `poppler_page_free_annot_mapping()` when done.

`page` : | A PopplerPage
Returns : | A GList of PopplerAnnotMapping. [element-type PopplerAnnotMapping][transfer full]

### poppler_page_free_annot_mapping ()

    void                poppler_page_free_annot_mapping     (GList *list);

Frees a list of PopplerAnnotMappings allocated by `poppler_page_get_annot_mapping()`. It also frees the PopplerAnnots that each mapping contains, so if you want to keep them around, you need to copy them with `poppler_annot_copy()`.

`list` : | A list of PopplerAnnotMappings

### poppler_page_add_annot ()

    void                poppler_page_add_annot              (PopplerPage *page,
                                                             PopplerAnnot *annot);

Adds annotation `annot` to `page`.

`page` : | a PopplerPage
`annot` : | a PopplerAnnot to add

Since 0.16

### poppler_rectangle_new ()

    PopplerRectangle *  poppler_rectangle_new               (void);

Creates a new PopplerRectangle

Returns : | a new PopplerRectangle, use `poppler_rectangle_free()` to free it

### poppler_rectangle_copy ()

    PopplerRectangle *  poppler_rectangle_copy              (PopplerRectangle *rectangle);

Creates a copy of `rectangle`

`rectangle` : | a PopplerRectangle to copy
Returns : | a new allocated copy of `rectangle`

### poppler_rectangle_free ()

    void                poppler_rectangle_free              (PopplerRectangle *rectangle);

Frees the given PopplerRectangle

`rectangle` : | a PopplerRectangle

### poppler_page_transition_new ()

    PopplerPageTransition * poppler_page_transition_new     (void);

Creates a new PopplerPageTransition

Returns : | a new PopplerPageTransition, use `poppler_page_transition_free()` to free it

### poppler_page_transition_copy ()

    PopplerPageTransition * poppler_page_transition_copy    (PopplerPageTransition *transition);

Creates a copy of `transition`

`transition` : | a PopplerPageTransition to copy
Returns : | a new allocated copy of `transition`

### poppler_page_transition_free ()

    void                poppler_page_transition_free        (PopplerPageTransition *transition);

Frees the given PopplerPageTransition

`transition` : | a PopplerPageTransition

### poppler_link_mapping_new ()

    PopplerLinkMapping * poppler_link_mapping_new           (void);

Creates a new PopplerLinkMapping

Returns : | a new PopplerLinkMapping, use `poppler_link_mapping_free()` to free it

### poppler_link_mapping_copy ()

    PopplerLinkMapping * poppler_link_mapping_copy          (PopplerLinkMapping *mapping);

Creates a copy of `mapping`

`mapping` : | a PopplerLinkMapping to copy
Returns : | a new allocated copy of `mapping`

### poppler_link_mapping_free ()

    void                poppler_link_mapping_free           (PopplerLinkMapping *mapping);

Frees the given PopplerLinkMapping

`mapping` : | a PopplerLinkMapping

### poppler_image_mapping_new ()

    PopplerImageMapping * poppler_image_mapping_new         (void);

Creates a new PopplerImageMapping

Returns : | a new PopplerImageMapping, use `poppler_image_mapping_free()` to free it

### poppler_image_mapping_copy ()

    PopplerImageMapping * poppler_image_mapping_copy        (PopplerImageMapping *mapping);

Creates a copy of `mapping`

`mapping` : | a PopplerImageMapping to copy
Returns : | a new allocated copy of `mapping`

### poppler_image_mapping_free ()

    void                poppler_image_mapping_free          (PopplerImageMapping *mapping);

Frees the given PopplerImageMapping

`mapping` : | a PopplerImageMapping

### poppler_form_field_mapping_new ()

    PopplerFormFieldMapping * poppler_form_field_mapping_new
                                                            (void);

Creates a new PopplerFormFieldMapping

Returns : | a new PopplerFormFieldMapping, use `poppler_form_field_mapping_free()` to free it

### poppler_form_field_mapping_copy ()

    PopplerFormFieldMapping * poppler_form_field_mapping_copy
                                                            (PopplerFormFieldMapping *mapping);

Creates a copy of `mapping`

`mapping` : | a PopplerFormFieldMapping to copy
Returns : | a new allocated copy of `mapping`

### poppler_form_field_mapping_free ()

    void                poppler_form_field_mapping_free     (PopplerFormFieldMapping *mapping);

Frees the given PopplerFormFieldMapping

`mapping` : | a PopplerFormFieldMapping

### poppler_annot_mapping_new ()

    PopplerAnnotMapping * poppler_annot_mapping_new         (void);

Creates a new PopplerAnnotMapping

Returns : | a new PopplerAnnotMapping, use `poppler_annot_mapping_free()` to free it

### poppler_annot_mapping_copy ()

    PopplerAnnotMapping * poppler_annot_mapping_copy        (PopplerAnnotMapping *mapping);

Creates a copy of `mapping`

`mapping` : | a PopplerAnnotMapping to copy
Returns : | a new allocated copy of `mapping`

### poppler_annot_mapping_free ()

    void                poppler_annot_mapping_free          (PopplerAnnotMapping *mapping);

Frees the given PopplerAnnotMapping

`mapping` : | a PopplerAnnotMapping

## Property Details

### The `"label"` property

      "label"                    gchar*                : Read

The label of the page or `NULL`. See also `poppler_page_get_label()`

Default value: NULL