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_FULL = (POPPLER_PERMISSIONS_OK_TO_PRINT | POPPLER_PERMISSIONS_OK_TO_MODIFY | POPPLER_PERMISSIONS_OK_TO_COPY | POPPLER_PERMISSIONS_OK_TO_ADD_NOTES)

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