#ifndef __POPPLER_PRIVATE_H__ #define __POPPLER_PRIVATE_H__ #include #ifndef __GI_SCANNER__ # include # include # include # include # include # include # include # include # include # include # include # include # include # include # include #endif #define SUPPORTED_ROTATION(r) (r == 90 || r == 180 || r == 270) struct _PopplerDocument { /*< private >*/ GObject parent_instance; std::unique_ptr 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