## PopplerDocument

PopplerDocument — Information about a document

## Functions

PopplerDocument * | poppler_document_new_from_file ()
PopplerDocument * | poppler_document_new_from_data ()
PopplerDocument * | poppler_document_new_from_stream ()
PopplerDocument * | poppler_document_new_from_gfile ()
gboolean | poppler_document_save ()
gboolean | poppler_document_save_a_copy ()
gboolean | poppler_document_get_id ()
gchar * | poppler_document_get_pdf_version_string ()
void | poppler_document_get_pdf_version ()
gchar * | poppler_document_get_title ()
void | poppler_document_set_title ()
gchar * | poppler_document_get_author ()
void | poppler_document_set_author ()
gchar * | poppler_document_get_subject ()
void | poppler_document_set_subject ()
gchar * | poppler_document_get_keywords ()
void | poppler_document_set_keywords ()
gchar * | poppler_document_get_creator ()
void | poppler_document_set_creator ()
gchar * | poppler_document_get_producer ()
void | poppler_document_set_producer ()
time_t | poppler_document_get_creation_date ()
void | poppler_document_set_creation_date ()
time_t | poppler_document_get_modification_date ()
void | poppler_document_set_modification_date ()
PopplerPageLayout | poppler_document_get_page_layout ()
PopplerPageMode | poppler_document_get_page_mode ()
PopplerPermissions | poppler_document_get_permissions ()
gchar * | poppler_document_get_metadata ()
gboolean | poppler_document_is_linearized ()
int | poppler_document_get_n_pages ()
PopplerPage * | poppler_document_get_page ()
PopplerPage * | poppler_document_get_page_by_label ()
PopplerDest * | poppler_document_find_dest ()
guint | poppler_document_get_n_attachments ()
gboolean | poppler_document_has_attachments ()
GList * | poppler_document_get_attachments ()
PopplerFormField * | poppler_document_get_form_field ()
PopplerIndexIter * | poppler_index_iter_new ()
PopplerIndexIter * | poppler_index_iter_copy ()
void | poppler_index_iter_free ()
PopplerIndexIter * | poppler_index_iter_get_child ()
gboolean | poppler_index_iter_is_open ()
PopplerAction * | poppler_index_iter_get_action ()
gboolean | poppler_index_iter_next ()
PopplerFontInfo * | poppler_font_info_new ()
gboolean | poppler_font_info_scan ()
void | poppler_font_info_free ()
PopplerFontsIter * | poppler_fonts_iter_copy ()
void | poppler_fonts_iter_free ()
const char * | poppler_fonts_iter_get_name ()
const char * | poppler_fonts_iter_get_full_name ()
PopplerFontType | poppler_fonts_iter_get_font_type ()
const char * | poppler_fonts_iter_get_substitute_name ()
const char * | poppler_fonts_iter_get_file_name ()
const char * | poppler_fonts_iter_get_encoding ()
gboolean | poppler_fonts_iter_is_embedded ()
gboolean | poppler_fonts_iter_is_subset ()
gboolean | poppler_fonts_iter_next ()
PopplerLayersIter * | poppler_layers_iter_new ()
PopplerLayersIter * | poppler_layers_iter_copy ()
void | poppler_layers_iter_free ()
PopplerLayersIter * | poppler_layers_iter_get_child ()
PopplerLayer * | poppler_layers_iter_get_layer ()
gchar * | poppler_layers_iter_get_title ()
gboolean | poppler_layers_iter_next ()
PopplerPSFile * | poppler_ps_file_new ()
void | poppler_ps_file_free ()
void | poppler_ps_file_set_paper_size ()
void | poppler_ps_file_set_duplex ()

## Properties

gchar * | author | Read / Write
gint | creation-date | Read / Write
gchar * | creator | Read / Write
gchar * | format | Read
guint | format-major | Read
guint | format-minor | Read
gchar * | keywords | Read / Write
gboolean | linearized | Read
gchar * | metadata | Read
gint | mod-date | Read / Write
PopplerPageLayout | page-layout | Read
PopplerPageMode | page-mode | Read
PopplerPermissions | permissions | Read
gchar * | producer | Read / Write
gchar * | subject | Read / Write
gchar * | title | Read / Write
PopplerViewerPreferences | viewer-preferences | Read

## Types and Values

| PopplerDocument
| PopplerIndexIter
| PopplerFontsIter
| PopplerLayersIter
enum | PopplerPageLayout
enum | PopplerPageMode
| PopplerFontInfo
enum | PopplerFontType
| PopplerPSFile
enum | PopplerViewerPreferences
enum | PopplerPermissions

## Object Hierarchy

        GObject
        ╰── PopplerDocument

## Includes

    #include <poppler.h>

## Description

The PopplerDocument is an object used to refer to a main document.

## Functions

### poppler_document_new_from_file ()

    PopplerDocument *
    poppler_document_new_from_file (const char *uri,
                                    const char *password,
                                    GError **error);

Creates a new PopplerDocument. If `NULL` is returned, then `error` will be set. Possible errors include those in the POPPLER_ERROR and G_FILE_ERROR domains.

#### Parameters

uri | uri of the file to load |
password | password to unlock the file with, or `NULL`. | [allow-none]
error | Return location for an error, or `NULL`. | [allow-none]

#### Returns

A newly created PopplerDocument, or `NULL`

### poppler_document_new_from_data ()

    PopplerDocument *
    poppler_document_new_from_data (char *data,
                                    int length,
                                    const char *password,
                                    GError **error);

Creates a new PopplerDocument. If `NULL` is returned, then `error` will be set. Possible errors include those in the POPPLER_ERROR and G_FILE_ERROR domains.

#### Parameters

data | the pdf data contained in a char array |
length | the length of data |
password | password to unlock the file with, or `NULL`. | [allow-none]
error | Return location for an error, or `NULL`. | [allow-none]

#### Returns

A newly created PopplerDocument, or `NULL`

### poppler_document_new_from_stream ()

    PopplerDocument *
    poppler_document_new_from_stream (GInputStream *stream,
                                      goffset length,
                                      const char *password,
                                      GCancellable *cancellable,
                                      GError **error);

Creates a new PopplerDocument reading the PDF contents from `stream` . Note that the given GInputStream must be seekable or `G_IO_ERROR_NOT_SUPPORTED` will be returned. Possible errors include those in the POPPLER_ERROR and G_FILE_ERROR domains.

#### Parameters

stream | a GInputStream to read from |
length | the stream length, or -1 if not known |
password | password to unlock the file with, or `NULL`. | [allow-none]
cancellable | a GCancellable, or `NULL`. | [allow-none]
error | Return location for an error, or `NULL`. | [allow-none]

#### Returns

a new PopplerDocument, or `NULL`.

[transfer full]

Since: 0.22

### poppler_document_new_from_gfile ()

    PopplerDocument *
    poppler_document_new_from_gfile (GFile *file,
                                     const char *password,
                                     GCancellable *cancellable,
                                     GError **error);

Creates a new PopplerDocument reading the PDF contents from `file` . Possible errors include those in the POPPLER_ERROR and G_FILE_ERROR domains.

#### Parameters

file | a GFile to load |
password | password to unlock the file with, or `NULL`. | [allow-none]
cancellable | a GCancellable, or `NULL`. | [allow-none]
error | Return location for an error, or `NULL`. | [allow-none]

#### Returns

a new PopplerDocument, or `NULL`.

[transfer full]

Since: 0.22

### poppler_document_save ()

    gboolean
    poppler_document_save (PopplerDocument *document,
                           const char *uri,
                           GError **error);

Saves `document` . Any change made in the document such as form fields filled, annotations added or modified will be saved. If `error` is set, `FALSE` will be returned. Possible errors include those in the G_FILE_ERROR domain.

#### Parameters

document | a PopplerDocument |
uri | uri of file to save |
error | return location for an error, or `NULL`. | [allow-none]

#### Returns

`TRUE`, if the document was successfully saved

### poppler_document_save_a_copy ()

    gboolean
    poppler_document_save_a_copy (PopplerDocument *document,
                                  const char *uri,
                                  GError **error);

Saves a copy of the original `document` . Any change made in the document such as form fields filled by the user will not be saved. If `error` is set, `FALSE` will be returned. Possible errors include those in the G_FILE_ERROR domain.

#### Parameters

document | a PopplerDocument |
uri | uri of file to save |
error | return location for an error, or `NULL`. | [allow-none]

#### Returns

`TRUE`, if the document was successfully saved

### poppler_document_get_id ()

    gboolean
    poppler_document_get_id (PopplerDocument *document,
                             gchar **permanent_id,
                             gchar **update_id);

Returns the PDF file identifier represented as two byte string arrays of size 32. `permanent_id` is the permanent identifier that is built based on the file contents at the time it was originally created, so that this identifer never changes. `update_id` is the update identifier that is built based on the file contents at the time it was last updated.

Note that returned strings are not null-terminated, they have a fixed size of 32 bytes.

#### Parameters

document | A PopplerDocument |
permanent_id | location to store an allocated string, use `g_free()` to free the returned string. | [out][allow-none]
update_id | location to store an allocated string, use `g_free()` to free the returned string. | [out][allow-none]

#### Returns

`TRUE` if the `document` contains an id, `FALSE` otherwise

Since: 0.16

### poppler_document_get_pdf_version_string ()

    gchar *
    poppler_document_get_pdf_version_string
                                   (PopplerDocument *document);

Returns the PDF version of `document` as a string (e.g. PDF-1.6)

#### Parameters

document | A PopplerDocument |

#### Returns

a new allocated string containing the PDF version of `document` , or `NULL`

Since: 0.16

### poppler_document_get_pdf_version ()

    void
    poppler_document_get_pdf_version (PopplerDocument *document,
                                      guint *major_version,
                                      guint *minor_version);

#### Parameters

document | A PopplerDocument |
major_version | return location for the PDF major version number. | [out][allow-none]
minor_version | return location for the PDF minor version number. | [out][allow-none]

#### Returns

the major and minor PDF version numbers

Since: 0.16

### poppler_document_get_title ()

    gchar *
    poppler_document_get_title (PopplerDocument *document);

Returns the document's title

#### Parameters

document | A PopplerDocument |

#### Returns

a new allocated string containing the title of `document` , or `NULL`

Since: 0.16

### poppler_document_set_title ()

    void
    poppler_document_set_title (PopplerDocument *document,
                                const gchar *title);

Sets the document's title. If `title` is `NULL`, Title entry is removed from the document's Info dictionary.

#### Parameters

document | A PopplerDocument |
title | A new title |

Since: 0.46

### poppler_document_get_author ()

    gchar *
    poppler_document_get_author (PopplerDocument *document);

Returns the author of the document

#### Parameters

document | A PopplerDocument |

#### Returns

a new allocated string containing the author of `document` , or `NULL`

Since: 0.16

### poppler_document_set_author ()

    void
    poppler_document_set_author (PopplerDocument *document,
                                 const gchar *author);

Sets the document's author. If `author` is `NULL`, Author entry is removed from the document's Info dictionary.

#### Parameters

document | A PopplerDocument |
author | A new author |

Since: 0.46

### poppler_document_get_subject ()

    gchar *
    poppler_document_get_subject (PopplerDocument *document);

Returns the subject of the document

#### Parameters

document | A PopplerDocument |

#### Returns

a new allocated string containing the subject of `document` , or `NULL`

Since: 0.16

### poppler_document_set_subject ()

    void
    poppler_document_set_subject (PopplerDocument *document,
                                  const gchar *subject);

Sets the document's subject. If `subject` is `NULL`, Subject entry is removed from the document's Info dictionary.

#### Parameters

document | A PopplerDocument |
subject | A new subject |

Since: 0.46

### poppler_document_get_keywords ()

    gchar *
    poppler_document_get_keywords (PopplerDocument *document);

Returns the keywords associated to the document

#### Parameters

document | A PopplerDocument |

#### Returns

a new allocated string containing keywords associated to `document` , or `NULL`

Since: 0.16

### poppler_document_set_keywords ()

    void
    poppler_document_set_keywords (PopplerDocument *document,
                                   const gchar *keywords);

Sets the document's keywords. If `keywords` is `NULL`, Keywords entry is removed from the document's Info dictionary.

#### Parameters

document | A PopplerDocument |
keywords | New keywords |

Since: 0.46

### poppler_document_get_creator ()

    gchar *
    poppler_document_get_creator (PopplerDocument *document);

Returns the creator of the document. If the document was converted from another format, the creator is the name of the product that created the original document from which it was converted.

#### Parameters

document | A PopplerDocument |

#### Returns

a new allocated string containing the creator of `document` , or `NULL`

Since: 0.16

### poppler_document_set_creator ()

    void
    poppler_document_set_creator (PopplerDocument *document,
                                  const gchar *creator);

Sets the document's creator. If `creator` is `NULL`, Creator entry is removed from the document's Info dictionary.

#### Parameters

document | A PopplerDocument |
creator | A new creator |

Since: 0.46

### poppler_document_get_producer ()

    gchar *
    poppler_document_get_producer (PopplerDocument *document);

Returns the producer of the document. If the document was converted from another format, the producer is the name of the product that converted it to PDF

#### Parameters

document | A PopplerDocument |

#### Returns

a new allocated string containing the producer of `document` , or `NULL`

Since: 0.16

### poppler_document_set_producer ()

    void
    poppler_document_set_producer (PopplerDocument *document,
                                   const gchar *producer);

Sets the document's producer. If `producer` is `NULL`, Producer entry is removed from the document's Info dictionary.

#### Parameters

document | A PopplerDocument |
producer | A new producer |

Since: 0.46

### poppler_document_get_creation_date ()

    time_t
    poppler_document_get_creation_date (PopplerDocument *document);

Returns the date the document was created as seconds since the Epoch

#### Parameters

document | A PopplerDocument |

#### Returns

the date the document was created, or -1

Since: 0.16

### poppler_document_set_creation_date ()

    void
    poppler_document_set_creation_date (PopplerDocument *document,
                                        time_t creation_date);

Sets the document's creation date. If `creation_date` is -1, CreationDate entry is removed from the document's Info dictionary.

#### Parameters

document | A PopplerDocument |
creation_date | A new creation date |

Since: 0.46

### poppler_document_get_modification_date ()

    time_t
    poppler_document_get_modification_date
                                   (PopplerDocument *document);

Returns the date the document was most recently modified as seconds since the Epoch

#### Parameters

document | A PopplerDocument |

#### Returns

the date the document was most recently modified, or -1

Since: 0.16

### poppler_document_set_modification_date ()

    void
    poppler_document_set_modification_date
                                   (PopplerDocument *document,
                                    time_t modification_date);

Sets the document's modification date. If `modification_date` is -1, ModDate entry is removed from the document's Info dictionary.

#### Parameters

document | A PopplerDocument |
modification_date | A new modification date |

Since: 0.46

### poppler_document_get_page_layout ()

    PopplerPageLayout
    poppler_document_get_page_layout (PopplerDocument *document);

Returns the page layout that should be used when the document is opened

#### Parameters

document | A PopplerDocument |

#### Returns

a PopplerPageLayout that should be used when the document is opened

Since: 0.16

### poppler_document_get_page_mode ()

    PopplerPageMode
    poppler_document_get_page_mode (PopplerDocument *document);

Returns a PopplerPageMode representing how the document should be initially displayed when opened.

#### Parameters

document | A PopplerDocument |

#### Returns

a PopplerPageMode that should be used when document is opened

Since: 0.16

### poppler_document_get_permissions ()

    PopplerPermissions
    poppler_document_get_permissions (PopplerDocument *document);

Returns the flags specifying which operations are permitted when the document is opened.

#### Parameters

document | A PopplerDocument |

#### Returns

a set of falgs from PopplerPermissions enumeration

Since: 0.16

### poppler_document_get_metadata ()

    gchar *
    poppler_document_get_metadata (PopplerDocument *document);

Returns the XML metadata string of the document

#### Parameters

document | A PopplerDocument |

#### Returns

a new allocated string containing the XML metadata, or `NULL`

Since: 0.16

### poppler_document_is_linearized ()

    gboolean
    poppler_document_is_linearized (PopplerDocument *document);

Returns whether `document` is linearized or not. Linearization of PDF enables efficient incremental access of the PDF file in a network environment.

#### Parameters

document | A PopplerDocument |

#### Returns

`TRUE` if `document` is linearized, `FALSE` otherwhise

Since: 0.16

### poppler_document_get_n_pages ()

    int
    poppler_document_get_n_pages (PopplerDocument *document);

Returns the number of pages in a loaded document.

#### Parameters

document | A PopplerDocument |

#### Returns

Number of pages

### poppler_document_get_page ()

    PopplerPage *
    poppler_document_get_page (PopplerDocument *document,
                               int index);

Returns the PopplerPage indexed at `index` . This object is owned by the caller.

#### Parameters

document | A PopplerDocument |
index | a page index |

#### Returns

(transfer full) : The PopplerPage at `index`

### poppler_document_get_page_by_label ()

    PopplerPage *
    poppler_document_get_page_by_label (PopplerDocument *document,
                                        const char *label);

Returns the PopplerPage reference by `label` . This object is owned by the caller. `label` is a human-readable string representation of the page number, and can be document specific. Typically, it is a value such as "iii" or "3".

By default, "1" refers to the first page.

#### Parameters

document | A PopplerDocument |
label | a page label |

#### Returns

(transfer full) :The PopplerPage referenced by `label`

### poppler_document_find_dest ()

    PopplerDest *
    poppler_document_find_dest (PopplerDocument *document,
                                const gchar *link_name);

Finds named destination `link_name` in `document`

#### Parameters

document | A PopplerDocument |
link_name | a named destination |

#### Returns

The PopplerDest destination or `NULL` if `link_name` is not a destination. Returned value must be freed with poppler_dest_free

### poppler_document_get_n_attachments ()

    guint
    poppler_document_get_n_attachments (PopplerDocument *document);

Returns the number of attachments in a loaded document. See also `poppler_document_get_attachments()`

#### Parameters

document | A PopplerDocument |

#### Returns

Number of attachments

Since: 0.18

### poppler_document_has_attachments ()

    gboolean
    poppler_document_has_attachments (PopplerDocument *document);

Returns `TRUE` of `document` has any attachments.

#### Parameters

document | A PopplerDocument |

#### Returns

`TRUE`, if `document` has attachments.

### poppler_document_get_attachments ()

    GList *
    poppler_document_get_attachments (PopplerDocument *document);

Returns a GList containing PopplerAttachments. These attachments are unowned, and must be unreffed, and the list must be freed with `g_list_free()`.

#### Parameters

document | A PopplerDocument |

#### Returns

a list of available attachments.

[element-type PopplerAttachment][transfer full]

### poppler_document_get_form_field ()

    PopplerFormField *
    poppler_document_get_form_field (PopplerDocument *document,
                                     gint id);

Returns the PopplerFormField for the given `id` . It must be freed with `g_object_unref()`

#### Parameters

document | a PopplerDocument |
id | an id of a PopplerFormField |

#### Returns

a new PopplerFormField or `NULL` if not found.

[transfer full]

### poppler_index_iter_new ()

    PopplerIndexIter *
    poppler_index_iter_new (PopplerDocument *document);

Returns the root PopplerIndexIter for `document` , or `NULL`. This must be freed with `poppler_index_iter_free()`.

Certain documents have an index associated with them. This index can be used to help the user navigate the document, and is similar to a table of contents. Each node in the index will contain a PopplerAction that can be displayed to the user — typically a POPPLER_ACTION_GOTO_DEST or a POPPLER_ACTION_URI.

Here is a simple example of some code that walks the full index:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    static void
    walk_index (PopplerIndexIter *iter)
    {
      do
        {
          /* Get the the action and do something with it */
          PopplerIndexIter *child = poppler_index_iter_get_child (iter);
          if (child)
            walk_index (child);
          poppler_index_iter_free (child);
        }
      while (poppler_index_iter_next (iter));
    }
    ...
    {
      iter = poppler_index_iter_new (document);
      walk_index (iter);
      poppler_index_iter_free (iter);
    }

#### Parameters

document | a PopplerDocument |

#### Returns

a new PopplerIndexIter

### poppler_index_iter_copy ()

    PopplerIndexIter *
    poppler_index_iter_copy (PopplerIndexIter *iter);

Creates a new PopplerIndexIter as a copy of `iter` . This must be freed with `poppler_index_iter_free()`.

#### Parameters

iter | a PopplerIndexIter |

#### Returns

a new PopplerIndexIter

### poppler_index_iter_free ()

    void
    poppler_index_iter_free (PopplerIndexIter *iter);

Frees `iter` .

#### Parameters

iter | a PopplerIndexIter |

### poppler_index_iter_get_child ()

    PopplerIndexIter *
    poppler_index_iter_get_child (PopplerIndexIter *parent);

Returns a newly created child of `parent` , or `NULL` if the iter has no child. See `poppler_index_iter_new()` for more information on this function.

#### Parameters

parent | a PopplerIndexIter |

#### Returns

a new PopplerIndexIter

### poppler_index_iter_is_open ()

    gboolean
    poppler_index_iter_is_open (PopplerIndexIter *iter);

Returns whether this node should be expanded by default to the user. The document can provide a hint as to how the document's index should be expanded initially.

#### Parameters

iter | a PopplerIndexIter |

#### Returns

`TRUE`, if the document wants `iter` to be expanded

### poppler_index_iter_get_action ()

    PopplerAction *
    poppler_index_iter_get_action (PopplerIndexIter *iter);

Returns the PopplerAction associated with `iter` . It must be freed with `poppler_action_free()`.

#### Parameters

iter | a PopplerIndexIter |

#### Returns

a new PopplerAction

### poppler_index_iter_next ()

    gboolean
    poppler_index_iter_next (PopplerIndexIter *iter);

Sets `iter` to point to the next action at the current level, if valid. See `poppler_index_iter_new()` for more information.

#### Parameters

iter | a PopplerIndexIter |

#### Returns

`TRUE`, if `iter` was set to the next action

### poppler_font_info_new ()

    PopplerFontInfo *
    poppler_font_info_new (PopplerDocument *document);

Creates a new PopplerFontInfo object

#### Parameters

document | a PopplerDocument |

#### Returns

a new PopplerFontInfo instance

### poppler_font_info_scan ()

    gboolean
    poppler_font_info_scan (PopplerFontInfo *font_info,
                            int n_pages,
                            PopplerFontsIter **iter);

Scans the document associated with `font_info` for fonts. At most `n_pages` will be scanned starting from the current iterator. `iter` will point to the first font scanned.

Here is a simple example of code to scan fonts in a document

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    font_info = poppler_font_info_new (document);
    while (poppler_font_info_scan (font_info, 20, &fonts_iter)) {
            if (!fonts_iter)
                    continue; /* No fonts found in these 20 pages */
            do {
                    /* Do something with font iter */
                    g_print ("Font Name: %s\n", poppler_fonts_iter_get_name (fonts_iter));
            } while (poppler_fonts_iter_next (fonts_iter));
            poppler_fonts_iter_free (fonts_iter);
    }

#### Parameters

font_info | a PopplerFontInfo |
n_pages | number of pages to scan |
iter | return location for a PopplerFontsIter. | [out]

#### Returns

`TRUE`, if there are more fonts left to scan

### poppler_font_info_free ()

    void
    poppler_font_info_free (PopplerFontInfo *font_info);

### poppler_fonts_iter_copy ()

    PopplerFontsIter *
    poppler_fonts_iter_copy (PopplerFontsIter *iter);

Creates a copy of `iter`

#### Parameters

iter | a PopplerFontsIter to copy |

#### Returns

a new allocated copy of `iter`

### poppler_fonts_iter_free ()

    void
    poppler_fonts_iter_free (PopplerFontsIter *iter);

Frees the given PopplerFontsIter

#### Parameters

iter | a PopplerFontsIter |

### poppler_fonts_iter_get_name ()

    const char *
    poppler_fonts_iter_get_name (PopplerFontsIter *iter);

Returns the name of the font associated with `iter`

#### Parameters

iter | a PopplerFontsIter |

#### Returns

the font name

### poppler_fonts_iter_get_full_name ()

    const char *
    poppler_fonts_iter_get_full_name (PopplerFontsIter *iter);

Returns the full name of the font associated with `iter`

#### Parameters

iter | a PopplerFontsIter |

#### Returns

the font full name

### poppler_fonts_iter_get_font_type ()

    PopplerFontType
    poppler_fonts_iter_get_font_type (PopplerFontsIter *iter);

Returns the type of the font associated with `iter`

#### Parameters

iter | a PopplerFontsIter |

#### Returns

the font type

### poppler_fonts_iter_get_substitute_name ()

    const char *
    poppler_fonts_iter_get_substitute_name
                                   (PopplerFontsIter *iter);

The name of the substitute font of the font associated with `iter` or `NULL` if the font is embedded

#### Parameters

iter | a PopplerFontsIter |

#### Returns

the name of the substitute font or `NULL` if font is embedded

Since: 0.20

### poppler_fonts_iter_get_file_name ()

    const char *
    poppler_fonts_iter_get_file_name (PopplerFontsIter *iter);

The filename of the font associated with `iter` or `NULL` if the font is embedded

#### Parameters

iter | a PopplerFontsIter |

#### Returns

the filename of the font or `NULL` if font is embedded

### poppler_fonts_iter_get_encoding ()

    const char *
    poppler_fonts_iter_get_encoding (PopplerFontsIter *iter);

Returns the encoding of the font associated with `iter`

#### Parameters

iter | a PopplerFontsIter |

#### Returns

the font encoding

Since: 0.20

### poppler_fonts_iter_is_embedded ()

    gboolean
    poppler_fonts_iter_is_embedded (PopplerFontsIter *iter);

Returns whether the font associated with `iter` is embedded in the document

#### Parameters

iter | a PopplerFontsIter |

#### Returns

`TRUE` if font is emebdded, `FALSE` otherwise

### poppler_fonts_iter_is_subset ()

    gboolean
    poppler_fonts_iter_is_subset (PopplerFontsIter *iter);

Returns whether the font associated with `iter` is a subset of another font

#### Parameters

iter | a PopplerFontsIter |

#### Returns

`TRUE` if font is a subset, `FALSE` otherwise

### poppler_fonts_iter_next ()

    gboolean
    poppler_fonts_iter_next (PopplerFontsIter *iter);

Sets `iter` to point to the next font

#### Parameters

iter | a PopplerFontsIter |

#### Returns

`TRUE`, if `iter` was set to the next font

### poppler_layers_iter_new ()

    PopplerLayersIter *
    poppler_layers_iter_new (PopplerDocument *document);

#### Parameters

document | a PopplerDocument |

Since: 0.12

### poppler_layers_iter_copy ()

    PopplerLayersIter *
    poppler_layers_iter_copy (PopplerLayersIter *iter);

Creates a new PopplerLayersIter as a copy of `iter` . This must be freed with `poppler_layers_iter_free()`.

#### Parameters

iter | a PopplerLayersIter |

#### Returns

a new PopplerLayersIter

Since 0.12

### poppler_layers_iter_free ()

    void
    poppler_layers_iter_free (PopplerLayersIter *iter);

Frees `iter` .

#### Parameters

iter | a PopplerLayersIter |

Since: 0.12

### poppler_layers_iter_get_child ()

    PopplerLayersIter *
    poppler_layers_iter_get_child (PopplerLayersIter *parent);

Returns a newly created child of `parent` , or `NULL` if the iter has no child. See `poppler_layers_iter_new()` for more information on this function.

#### Parameters

parent | a PopplerLayersIter |

#### Returns

a new PopplerLayersIter, or `NULL`

Since: 0.12

### poppler_layers_iter_get_layer ()

    PopplerLayer *
    poppler_layers_iter_get_layer (PopplerLayersIter *iter);

Returns the PopplerLayer associated with `iter` .

#### Parameters

iter | a PopplerLayersIter |

#### Returns

a new PopplerLayer, or `NULL` if there isn't any layer associated with `iter` .

[transfer full]

Since: 0.12

### poppler_layers_iter_get_title ()

    gchar *
    poppler_layers_iter_get_title (PopplerLayersIter *iter);

Returns the title associated with `iter` . It must be freed with `g_free()`.

#### Parameters

iter | a PopplerLayersIter |

#### Returns

a new string containing the `iter` 's title or `NULL` if `iter` doesn't have a title. The returned string should be freed with `g_free()` when no longer needed.

Since: 0.12

### poppler_layers_iter_next ()

    gboolean
    poppler_layers_iter_next (PopplerLayersIter *iter);

Sets `iter` to point to the next action at the current level, if valid. See `poppler_layers_iter_new()` for more information.

#### Parameters

iter | a PopplerLayersIter |

#### Returns

`TRUE`, if `iter` was set to the next action

Since: 0.12

### poppler_ps_file_new ()

    PopplerPSFile *
    poppler_ps_file_new (PopplerDocument *document,
                         const char *filename,
                         int first_page,
                         int n_pages);

Create a new postscript file to render to

#### Parameters

document | a PopplerDocument |
filename | the path of the output filename |
first_page | the first page to print |
n_pages | the number of pages to print |

#### Returns

a PopplerPSFile

### poppler_ps_file_free ()

    void
    poppler_ps_file_free (PopplerPSFile *ps_file);

Frees `ps_file`

#### Parameters

ps_file | a PopplerPSFile |

### poppler_ps_file_set_paper_size ()

    void
    poppler_ps_file_set_paper_size (PopplerPSFile *ps_file,
                                    double width,
                                    double height);

Set the output paper size. These values will end up in the DocumentMedia, the BoundingBox DSC comments and other places in the generated PostScript.

#### Parameters

ps_file | a PopplerPSFile which was not yet printed to. |
width | the paper width in 1/72 inch |
height | the paper height in 1/72 inch |

### poppler_ps_file_set_duplex ()

    void
    poppler_ps_file_set_duplex (PopplerPSFile *ps_file,
                                gboolean duplex);

Enable or disable Duplex printing.

#### Parameters

ps_file | a PopplerPSFile which was not yet printed to |
duplex | whether to force duplex printing (on printers which support this) |

## Types and Values

### PopplerDocument

    typedef struct _PopplerDocument PopplerDocument;

### PopplerIndexIter

    typedef struct _PopplerIndexIter PopplerIndexIter;

### PopplerFontsIter

    typedef struct _PopplerFontsIter PopplerFontsIter;

### PopplerLayersIter

    typedef struct _PopplerLayersIter PopplerLayersIter;

### enum PopplerPageLayout

Page layout types

#### Members

POPPLER_PAGE_LAYOUT_UNSET | no specific layout set |
POPPLER_PAGE_LAYOUT_SINGLE_PAGE | one page at a time |
POPPLER_PAGE_LAYOUT_ONE_COLUMN | pages in one column |
POPPLER_PAGE_LAYOUT_TWO_COLUMN_LEFT | pages in two columns with odd numbered pages on the left |
POPPLER_PAGE_LAYOUT_TWO_COLUMN_RIGHT | pages in two columns with odd numbered pages on the right |
POPPLER_PAGE_LAYOUT_TWO_PAGE_LEFT | two pages at a time with odd numbered pages on the left |
POPPLER_PAGE_LAYOUT_TWO_PAGE_RIGHT | two pages at a time with odd numbered pages on the right |

### enum PopplerPageMode

Page modes

#### Members

POPPLER_PAGE_MODE_UNSET | no specific mode set |
POPPLER_PAGE_MODE_NONE | neither document outline nor thumbnails visible |
POPPLER_PAGE_MODE_USE_OUTLINES | document outline visible |
POPPLER_PAGE_MODE_USE_THUMBS | thumbnails visible |
POPPLER_PAGE_MODE_FULL_SCREEN | full-screen mode |
POPPLER_PAGE_MODE_USE_OC | layers panel visible |
POPPLER_PAGE_MODE_USE_ATTACHMENTS | attachments panel visible |

### PopplerFontInfo

    typedef struct _PopplerFontInfo PopplerFontInfo;

### enum PopplerFontType

Font types

#### Members

POPPLER_FONT_TYPE_UNKNOWN | unknown font type |
POPPLER_FONT_TYPE_TYPE1 | Type 1 font type |
POPPLER_FONT_TYPE_TYPE1C | Type 1 font type embedded in Compact Font Format (CFF) font program |
POPPLER_FONT_TYPE_TYPE1COT | Type 1 font type embedded in OpenType font program |
POPPLER_FONT_TYPE_TYPE3 | A font type that is defined with PDF graphics operators |
POPPLER_FONT_TYPE_TRUETYPE | TrueType font type |
POPPLER_FONT_TYPE_TRUETYPEOT | TrueType font type embedded in OpenType font program |
POPPLER_FONT_TYPE_CID_TYPE0 | CIDFont type based on Type 1 font technology |
POPPLER_FONT_TYPE_CID_TYPE0C | CIDFont type based on Type 1 font technology embedded in CFF font program |
POPPLER_FONT_TYPE_CID_TYPE0COT | CIDFont type based on Type 1 font technology embedded in OpenType font program |
POPPLER_FONT_TYPE_CID_TYPE2 | CIDFont type based on TrueType font technology |
POPPLER_FONT_TYPE_CID_TYPE2OT | CIDFont type based on TrueType font technology embedded in OpenType font program |

### PopplerPSFile

    typedef struct _PopplerPSFile PopplerPSFile;

### enum PopplerViewerPreferences

Viewer preferences

#### Members

POPPLER_VIEWER_PREFERENCES_UNSET | no preferences set |
POPPLER_VIEWER_PREFERENCES_HIDE_TOOLBAR | hider toolbars when document is active |
POPPLER_VIEWER_PREFERENCES_HIDE_MENUBAR | hide menu bar when document is active |
POPPLER_VIEWER_PREFERENCES_HIDE_WINDOWUI | hide UI elements in document's window |
POPPLER_VIEWER_PREFERENCES_FIT_WINDOW | resize document's window to fit the size of the first displayed page |
POPPLER_VIEWER_PREFERENCES_CENTER_WINDOW | position the document's window in the center of the screen |
POPPLER_VIEWER_PREFERENCES_DISPLAY_DOC_TITLE | display document title in window's title bar |
POPPLER_VIEWER_PREFERENCES_DIRECTION_RTL | the predominant reading order for text is right to left |

### enum PopplerPermissions

Permissions

#### Members

POPPLER_PERMISSIONS_OK_TO_PRINT | document can be printer |
POPPLER_PERMISSIONS_OK_TO_MODIFY | document contents can be modified |
POPPLER_PERMISSIONS_OK_TO_COPY | document can be copied |
POPPLER_PERMISSIONS_OK_TO_ADD_NOTES | annotations can added to the document |
POPPLER_PERMISSIONS_OK_TO_FILL_FORM | interactive form fields can be filled in |
POPPLER_PERMISSIONS_OK_TO_EXTRACT_CONTENTS | extract text and graphics (in support of accessibility to users with disabilities or for other purposes). Since 0.18 |
POPPLER_PERMISSIONS_OK_TO_ASSEMBLE | assemble the document (insert, rotate, or delete pages and create bookmarks or thumbnail images). Since 0.18 |
POPPLER_PERMISSIONS_OK_TO_PRINT_HIGH_RESOLUTION | document can be printer at high resolution. Since 0.18 |
POPPLER_PERMISSIONS_FULL | document permits all operations |

## Property Details

### The `“author”` property

      “author”                   gchar *

The author of the document

Flags: Read / Write

Default value: NULL

### The `“creation-date”` property

      “creation-date”            gint

The date the document was created as seconds since the Epoch, or -1

Flags: Read / Write

Allowed values: >= -1

Default value: -1

### The `“creator”` property

      “creator”                  gchar *

The creator of the document. See also `poppler_document_get_creator()`

Flags: Read / Write

Default value: NULL

### The `“format”` property

      “format”                   gchar *

The PDF version as string. See also `poppler_document_get_pdf_version_string()`

Flags: Read

Default value: NULL

### The `“format-major”` property

      “format-major”             guint

The PDF major version number. See also `poppler_document_get_pdf_version()`

Flags: Read

Default value: 1

### The `“format-minor”` property

      “format-minor”             guint

The PDF minor version number. See also `poppler_document_get_pdf_version()`

Flags: Read

Default value: 0

### The `“keywords”` property

      “keywords”                 gchar *

The keywords associated to the document

Flags: Read / Write

Default value: NULL

### The `“linearized”` property

      “linearized”               gboolean

Whether document is linearized. See also `poppler_document_is_linearized()`

Flags: Read

Default value: FALSE

### The `“metadata”` property

      “metadata”                 gchar *

Document metadata in XML format, or `NULL`

Flags: Read

Default value: NULL

### The `“mod-date”` property

      “mod-date”                 gint

The date the document was most recently modified as seconds since the Epoch, or -1

Flags: Read / Write

Allowed values: >= -1

Default value: -1

### The `“page-layout”` property

      “page-layout”              PopplerPageLayout

The page layout that should be used when the document is opened

Flags: Read

Default value: POPPLER_PAGE_LAYOUT_UNSET

### The `“page-mode”` property

      “page-mode”                PopplerPageMode

The mode that should be used when the document is opened

Flags: Read

Default value: POPPLER_PAGE_MODE_UNSET

### The `“permissions”` property

      “permissions”              PopplerPermissions

Flags specifying which operations are permitted when the document is opened

Flags: Read

Default value: POPPLER_PERMISSIONS_OK_TO_PRINT | POPPLER_PERMISSIONS_OK_TO_MODIFY | POPPLER_PERMISSIONS_OK_TO_COPY | POPPLER_PERMISSIONS_OK_TO_ADD_NOTES | POPPLER_PERMISSIONS_OK_TO_FILL_FORM | POPPLER_PERMISSIONS_OK_TO_EXTRACT_CONTENTS | POPPLER_PERMISSIONS_OK_TO_ASSEMBLE | POPPLER_PERMISSIONS_OK_TO_PRINT_HIGH_RESOLUTION

### The `“producer”` property

      “producer”                 gchar *

The producer of the document. See also `poppler_document_get_producer()`

Flags: Read / Write

Default value: NULL

### The `“subject”` property

      “subject”                  gchar *

The subject of the document

Flags: Read / Write

Default value: NULL

### The `“title”` property

      “title”                    gchar *

The document's title or `NULL`

Flags: Read / Write

Default value: NULL

### The `“viewer-preferences”` property

      “viewer-preferences”       PopplerViewerPreferences

Viewer Preferences.

Flags: Read