PopplerDocument

PopplerDocument — Information about a document

Synopsis

enum                PopplerPageLayout;
enum                PopplerPageMode;
enum                PopplerFontType;
enum                PopplerViewerPreferences;
enum                PopplerPermissions;
PopplerDocument *   poppler_document_new_from_file      (const char *uri,
                                                         const char *password,
                                                         GError **error);
PopplerDocument *   poppler_document_new_from_data      (char *data,
                                                         int length,
                                                         const char *password,
                                                         GError **error);
gboolean            poppler_document_save               (PopplerDocument *document,
                                                         const char *uri,
                                                         GError **error);
int                 poppler_document_get_n_pages        (PopplerDocument *document);
PopplerPage *       poppler_document_get_page           (PopplerDocument *document,
                                                         int index);
PopplerPage *       poppler_document_get_page_by_label  (PopplerDocument *document,
                                                         const char *label);
PopplerDest *       poppler_document_find_dest          (PopplerDocument *document,
                                                         const gchar *link_name);
gboolean            poppler_document_has_attachments    (PopplerDocument *document);
GList *             poppler_document_get_attachments    (PopplerDocument *document);
PopplerFormField *  poppler_document_get_form_field     (PopplerDocument *document,
                                                         gint id);
GType               poppler_index_iter_get_type         (void);
PopplerIndexIter *  poppler_index_iter_new              (PopplerDocument *document);
PopplerIndexIter *  poppler_index_iter_copy             (PopplerIndexIter *iter);
void                poppler_index_iter_free             (PopplerIndexIter *iter);
PopplerIndexIter *  poppler_index_iter_get_child        (PopplerIndexIter *parent);
gboolean            poppler_index_iter_is_open          (PopplerIndexIter *iter);
PopplerAction *     poppler_index_iter_get_action       (PopplerIndexIter *iter);
gboolean            poppler_index_iter_next             (PopplerIndexIter *iter);
PopplerFontInfo *   poppler_font_info_new               (PopplerDocument *document);
gboolean            poppler_font_info_scan              (PopplerFontInfo *font_info,
                                                         int n_pages,
                                                         PopplerFontsIter **iter);
void                poppler_font_info_free              (PopplerFontInfo *font_info);
GType               poppler_fonts_iter_get_type         (void);
PopplerFontsIter *  poppler_fonts_iter_copy             (PopplerFontsIter *iter);
void                poppler_fonts_iter_free             (PopplerFontsIter *iter);
const char *        poppler_fonts_iter_get_name         (PopplerFontsIter *iter);
const char *        poppler_fonts_iter_get_full_name    (PopplerFontsIter *iter);
PopplerFontType     poppler_fonts_iter_get_font_type    (PopplerFontsIter *iter);
gboolean            poppler_fonts_iter_is_embedded      (PopplerFontsIter *iter);
gboolean            poppler_fonts_iter_is_subset        (PopplerFontsIter *iter);
gboolean            poppler_fonts_iter_next             (PopplerFontsIter *iter);
PopplerPSFile *     poppler_ps_file_new                 (PopplerDocument *document,
                                                         const char *filename,
                                                         int first_page,
                                                         int n_pages);
void                poppler_ps_file_set_paper_size      (PopplerPSFile *ps_file,
                                                         double width,
                                                         double height);
void                poppler_ps_file_set_duplex          (PopplerPSFile *ps_file,
                                                         gboolean duplex);
void                poppler_ps_file_free                (PopplerPSFile *ps_file);

Description

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

Details

enum PopplerPageLayout

typedef enum
{
  POPPLER_PAGE_LAYOUT_UNSET,
  POPPLER_PAGE_LAYOUT_SINGLE_PAGE,
  POPPLER_PAGE_LAYOUT_ONE_COLUMN,
  POPPLER_PAGE_LAYOUT_TWO_COLUMN_LEFT,
  POPPLER_PAGE_LAYOUT_TWO_COLUMN_RIGHT,
  POPPLER_PAGE_LAYOUT_TWO_PAGE_LEFT,
  POPPLER_PAGE_LAYOUT_TWO_PAGE_RIGHT
} PopplerPageLayout;


enum PopplerPageMode

typedef enum
{
  POPPLER_PAGE_MODE_UNSET,
  POPPLER_PAGE_MODE_NONE,
  POPPLER_PAGE_MODE_USE_OUTLINES,
  POPPLER_PAGE_MODE_USE_THUMBS,
  POPPLER_PAGE_MODE_FULL_SCREEN,
  POPPLER_PAGE_MODE_USE_OC,
  POPPLER_PAGE_MODE_USE_ATTACHMENTS
} PopplerPageMode;


enum PopplerFontType

typedef enum
{
  POPPLER_FONT_TYPE_UNKNOWN,
  POPPLER_FONT_TYPE_TYPE1,
  POPPLER_FONT_TYPE_TYPE1C,
  POPPLER_FONT_TYPE_TYPE1COT,
  POPPLER_FONT_TYPE_TYPE3,
  POPPLER_FONT_TYPE_TRUETYPE,
  POPPLER_FONT_TYPE_TRUETYPEOT,
  POPPLER_FONT_TYPE_CID_TYPE0,
  POPPLER_FONT_TYPE_CID_TYPE0C,
  POPPLER_FONT_TYPE_CID_TYPE0COT,
  POPPLER_FONT_TYPE_CID_TYPE2,
  POPPLER_FONT_TYPE_CID_TYPE2OT
} PopplerFontType;


enum PopplerViewerPreferences

typedef enum /*< flags >*/
{
  POPPLER_VIEWER_PREFERENCES_UNSET = 0,
  POPPLER_VIEWER_PREFERENCES_HIDE_TOOLBAR = 1 << 0,
  POPPLER_VIEWER_PREFERENCES_HIDE_MENUBAR = 1 << 1,
  POPPLER_VIEWER_PREFERENCES_HIDE_WINDOWUI = 1 << 2,
  POPPLER_VIEWER_PREFERENCES_FIT_WINDOW = 1 << 3,
  POPPLER_VIEWER_PREFERENCES_CENTER_WINDOW = 1 << 4,
  POPPLER_VIEWER_PREFERENCES_DISPLAY_DOC_TITLE = 1 << 5,
  POPPLER_VIEWER_PREFERENCES_DIRECTION_RTL = 1 << 6
} PopplerViewerPreferences;


enum PopplerPermissions

typedef enum /*< flags >*/
{
  POPPLER_PERMISSIONS_OK_TO_PRINT = 1 << 0,
  POPPLER_PERMISSIONS_OK_TO_MODIFY = 1 << 1,
  POPPLER_PERMISSIONS_OK_TO_COPY = 1 << 2,
  POPPLER_PERMISSIONS_OK_TO_ADD_NOTES = 1 << 3,
  POPPLER_PERMISSIONS_OK_TO_FILL_FORM = 1 << 4,
  POPPLER_PERMISSIONS_FULL = (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)

} PopplerPermissions;


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.

uri :

uri of the file to load

password :

password to unlock the file with, or NULL

error :

Return location for an error, or NULL

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.

data :

the pdf data contained in a char array

length :

the length of data

password :

password to unlock the file with, or NULL

error :

Return location for an error, or NULL

Returns :

A newly created PopplerDocument, or NULL

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 by the user will be saved. If error is set, FALSE will be returned. Possible errors include those in the G_FILE_ERROR domain.

document :

a PopplerDocument

uri :

uri of file to save

error :

return location for an error, or NULL

Returns :

TRUE, if the document was successfully saved

poppler_document_get_n_pages ()

int                 poppler_document_get_n_pages        (PopplerDocument *document);

Returns the number of pages in a loaded document.

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.

PopplerPages are indexed starting at 0.

document :

A PopplerDocument

index :

a page index

Returns :

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.

document :

A PopplerDocument

label :

a page label

Returns :

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

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_has_attachments ()

gboolean            poppler_document_has_attachments    (PopplerDocument *document);

Returns TRUE of document has any attachments.

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().

document :

A PopplerDocument

Returns :

a list of available attachments.

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

document :

a PopplerDocument

id :

an id of a PopplerFormField

Returns :

a new PopplerFormField or NULL if not found

poppler_index_iter_get_type ()

GType               poppler_index_iter_get_type         (void);

Returns :


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:

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);
}

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().

iter :

a PopplerIndexIter

Returns :

a new PopplerIndexIter

poppler_index_iter_free ()

void                poppler_index_iter_free             (PopplerIndexIter *iter);

Frees iter.

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.

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.

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().

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.

iter :

a PopplerIndexIter

Returns :

TRUE, if iter was set to the next action

poppler_font_info_new ()

PopplerFontInfo *   poppler_font_info_new               (PopplerDocument *document);

document :

Returns :


poppler_font_info_scan ()

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

font_info :

n_pages :

iter :

Returns :


poppler_font_info_free ()

void                poppler_font_info_free              (PopplerFontInfo *font_info);

font_info :


poppler_fonts_iter_get_type ()

GType               poppler_fonts_iter_get_type         (void);

Returns :


poppler_fonts_iter_copy ()

PopplerFontsIter *  poppler_fonts_iter_copy             (PopplerFontsIter *iter);

iter :

Returns :


poppler_fonts_iter_free ()

void                poppler_fonts_iter_free             (PopplerFontsIter *iter);

iter :


poppler_fonts_iter_get_name ()

const char *        poppler_fonts_iter_get_name         (PopplerFontsIter *iter);

iter :

Returns :


poppler_fonts_iter_get_full_name ()

const char *        poppler_fonts_iter_get_full_name    (PopplerFontsIter *iter);

iter :

Returns :


poppler_fonts_iter_get_font_type ()

PopplerFontType     poppler_fonts_iter_get_font_type    (PopplerFontsIter *iter);

iter :

Returns :


poppler_fonts_iter_is_embedded ()

gboolean            poppler_fonts_iter_is_embedded      (PopplerFontsIter *iter);

iter :

Returns :


poppler_fonts_iter_is_subset ()

gboolean            poppler_fonts_iter_is_subset        (PopplerFontsIter *iter);

iter :

Returns :


poppler_fonts_iter_next ()

gboolean            poppler_fonts_iter_next             (PopplerFontsIter *iter);

iter :

Returns :


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

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_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.

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.

ps_file :

a PopplerPSFile which was not yet printed to

duplex :

whether to force duplex printing (on printers which support this)

poppler_ps_file_free ()

void                poppler_ps_file_free                (PopplerPSFile *ps_file);

Frees ps_file

ps_file :

a PopplerPSFile