blob: 758c7021472f1f3133faabb1be3e1ad1410675e4 [file] [log] [blame]
#ifndef __POPPLER_PRIVATE_H__
#define __POPPLER_PRIVATE_H__
#include <config.h>
#ifndef __GI_SCANNER__
# include <PDFDoc.h>
# include <PSOutputDev.h>
# include <Link.h>
# include <Movie.h>
# include <Rendition.h>
# include <Form.h>
# include <Gfx.h>
# include <FontInfo.h>
# include <TextOutputDev.h>
# include <Catalog.h>
# include <OptionalContent.h>
# include <CairoOutputDev.h>
# include <FileSpec.h>
# include <StructElement.h>
# include <SignatureInfo.h>
#endif
#define SUPPORTED_ROTATION(r) (r == 90 || r == 180 || r == 270)
struct _PopplerDocument
{
/*< private >*/
GObject parent_instance;
std::unique_ptr<GlobalParamsIniter> initer;
PDFDoc *doc;
GList *layers;
GList *layers_rbgroups;
CairoOutputDev *output_dev;
};
struct _PopplerPSFile
{
/*< private >*/
GObject parent_instance;
PopplerDocument *document;
PSOutputDev *out;
int fd;
char *filename;
int first_page;
int last_page;
double paper_width;
double paper_height;
gboolean duplex;
};
struct _PopplerFontInfo
{
/*< private >*/
GObject parent_instance;
PopplerDocument *document;
FontInfoScanner *scanner;
};
struct _PopplerPage
{
/*< private >*/
GObject parent_instance;
PopplerDocument *document;
Page *page;
int index;
TextPage *text;
};
struct _PopplerFormField
{
/*< private >*/
GObject parent_instance;
PopplerDocument *document;
FormWidget *widget;
PopplerAction *action;
PopplerAction *field_modified_action;
PopplerAction *format_field_action;
PopplerAction *validate_field_action;
PopplerAction *calculate_field_action;
};
struct _PopplerAnnot
{
GObject parent_instance;
Annot *annot;
};
typedef struct _Layer
{
/*< private >*/
GList *kids;
gchar *label;
OptionalContentGroup *oc;
} Layer;
struct _PopplerLayer
{
/*< private >*/
GObject parent_instance;
PopplerDocument *document;
Layer *layer;
GList *rbgroup;
gchar *title;
};
struct _PopplerStructureElement
{
/*< private >*/
GObject parent_instance;
PopplerDocument *document;
const StructElement *elem;
};
/*
* PopplerRectangleExtended:
*
* The real type behind the public PopplerRectangle.
* Must be ABI compatible to it!
*/
typedef struct
{
/*< private >*/
double x1;
double y1;
double x2;
double y2;
bool match_continued; /* Described in poppler_rectangle_find_get_match_continued() */
bool ignored_hyphen; /* Described in poppler_rectangle_find_get_ignored_hyphen() */
} PopplerRectangleExtended;
PopplerRectangle *poppler_rectangle_new_from_pdf_rectangle(const PDFRectangle *rect);
GList *_poppler_document_get_layers(PopplerDocument *document);
GList *_poppler_document_get_layer_rbgroup(PopplerDocument *document, Layer *layer);
PopplerPage *_poppler_page_new(PopplerDocument *document, Page *page, int index);
void _unrotate_rect_for_annot_and_page(Page *page, Annot *annot, double *x1, double *y1, double *x2, double *y2);
AnnotQuadrilaterals *_page_new_quads_unrotated(Page *page, AnnotQuadrilaterals *quads);
AnnotQuadrilaterals *new_quads_from_offset_cropbox(const PDFRectangle *crop_box, AnnotQuadrilaterals *quads, gboolean add);
PopplerAction *_poppler_action_new(PopplerDocument *document, const LinkAction *link, const gchar *title);
PopplerLayer *_poppler_layer_new(PopplerDocument *document, Layer *layer, GList *rbgroup);
PopplerDest *_poppler_dest_new_goto(PopplerDocument *document, LinkDest *link_dest);
PopplerFormField *_poppler_form_field_new(PopplerDocument *document, FormWidget *field);
PopplerAttachment *_poppler_attachment_new(FileSpec *file);
PopplerMovie *_poppler_movie_new(const Movie *movie);
PopplerMedia *_poppler_media_new(const MediaRendition *media);
PopplerAnnot *_poppler_annot_new(Annot *annot);
PopplerAnnot *_poppler_annot_text_new(Annot *annot);
PopplerAnnot *_poppler_annot_free_text_new(Annot *annot);
PopplerAnnot *_poppler_annot_text_markup_new(Annot *annot);
PopplerAnnot *_poppler_annot_file_attachment_new(Annot *annot);
PopplerAnnot *_poppler_annot_movie_new(Annot *annot);
PopplerAnnot *_poppler_annot_screen_new(PopplerDocument *doc, Annot *annot);
PopplerAnnot *_poppler_annot_line_new(Annot *annot);
PopplerAnnot *_poppler_annot_circle_new(Annot *annot);
PopplerAnnot *_poppler_annot_square_new(Annot *annot);
PopplerAnnot *_poppler_annot_stamp_new(Annot *annot);
const PDFRectangle *_poppler_annot_get_cropbox(PopplerAnnot *poppler_annot);
char *_poppler_goo_string_to_utf8(const GooString *s);
gboolean _poppler_convert_pdf_date_to_gtime(const GooString *date, time_t *gdate);
GDateTime *_poppler_convert_pdf_date_to_date_time(const GooString *date);
GooString *_poppler_convert_date_time_to_pdf_date(GDateTime *datetime);
AnnotStampImageHelper *_poppler_convert_cairo_image_to_stamp_image_helper(const cairo_surface_t *image);
void _poppler_error_cb(ErrorCategory category, Goffset pos, const char *message);
#endif