1 | #ifndef __POPPLER_PRIVATE_H__ |
2 | #define __POPPLER_PRIVATE_H__ |
3 | |
4 | #include <config.h> |
5 | |
6 | #ifndef __GI_SCANNER__ |
7 | # include <PDFDoc.h> |
8 | # include <PSOutputDev.h> |
9 | # include <Link.h> |
10 | # include <Movie.h> |
11 | # include <Rendition.h> |
12 | # include <Form.h> |
13 | # include <Gfx.h> |
14 | # include <FontInfo.h> |
15 | # include <TextOutputDev.h> |
16 | # include <Catalog.h> |
17 | # include <OptionalContent.h> |
18 | # include <CairoOutputDev.h> |
19 | # include <FileSpec.h> |
20 | # include <StructElement.h> |
21 | # include <SignatureInfo.h> |
22 | #endif |
23 | |
24 | #define SUPPORTED_ROTATION(r) (r == 90 || r == 180 || r == 270) |
25 | |
26 | struct _PopplerDocument |
27 | { |
28 | /*< private >*/ |
29 | GObject parent_instance; |
30 | std::unique_ptr<GlobalParamsIniter> initer; |
31 | PDFDoc *doc; |
32 | |
33 | GList *layers; |
34 | GList *layers_rbgroups; |
35 | CairoOutputDev *output_dev; |
36 | }; |
37 | |
38 | struct _PopplerPSFile |
39 | { |
40 | /*< private >*/ |
41 | GObject parent_instance; |
42 | |
43 | PopplerDocument *document; |
44 | PSOutputDev *out; |
45 | int fd; |
46 | char *filename; |
47 | int first_page; |
48 | int last_page; |
49 | double paper_width; |
50 | double paper_height; |
51 | gboolean duplex; |
52 | }; |
53 | |
54 | struct _PopplerFontInfo |
55 | { |
56 | /*< private >*/ |
57 | GObject parent_instance; |
58 | PopplerDocument *document; |
59 | FontInfoScanner *scanner; |
60 | }; |
61 | |
62 | struct _PopplerPage |
63 | { |
64 | /*< private >*/ |
65 | GObject parent_instance; |
66 | PopplerDocument *document; |
67 | Page *page; |
68 | int index; |
69 | TextPage *text; |
70 | }; |
71 | |
72 | struct _PopplerFormField |
73 | { |
74 | /*< private >*/ |
75 | GObject parent_instance; |
76 | PopplerDocument *document; |
77 | FormWidget *widget; |
78 | PopplerAction *action; |
79 | PopplerAction *field_modified_action; |
80 | PopplerAction *format_field_action; |
81 | PopplerAction *validate_field_action; |
82 | PopplerAction *calculate_field_action; |
83 | }; |
84 | |
85 | struct _PopplerAnnot |
86 | { |
87 | GObject parent_instance; |
88 | Annot *annot; |
89 | }; |
90 | |
91 | typedef struct _Layer |
92 | { |
93 | /*< private >*/ |
94 | GList *kids; |
95 | gchar *label; |
96 | OptionalContentGroup *oc; |
97 | } Layer; |
98 | |
99 | struct _PopplerLayer |
100 | { |
101 | /*< private >*/ |
102 | GObject parent_instance; |
103 | PopplerDocument *document; |
104 | Layer *layer; |
105 | GList *rbgroup; |
106 | gchar *title; |
107 | }; |
108 | |
109 | struct _PopplerStructureElement |
110 | { |
111 | /*< private >*/ |
112 | GObject parent_instance; |
113 | PopplerDocument *document; |
114 | const StructElement *elem; |
115 | }; |
116 | |
117 | /* |
118 | * PopplerRectangleExtended: |
119 | * |
120 | * The real type behind the public PopplerRectangle. |
121 | * Must be ABI compatible to it! |
122 | */ |
123 | typedef struct |
124 | { |
125 | /*< private >*/ |
126 | double x1; |
127 | double y1; |
128 | double x2; |
129 | double y2; |
130 | bool match_continued; /* Described in poppler_rectangle_find_get_match_continued() */ |
131 | bool ignored_hyphen; /* Described in poppler_rectangle_find_get_ignored_hyphen() */ |
132 | } PopplerRectangleExtended; |
133 | |
134 | PopplerRectangle *poppler_rectangle_new_from_pdf_rectangle(const PDFRectangle *rect); |
135 | |
136 | GList *_poppler_document_get_layers(PopplerDocument *document); |
137 | GList *_poppler_document_get_layer_rbgroup(PopplerDocument *document, Layer *layer); |
138 | PopplerPage *_poppler_page_new(PopplerDocument *document, Page *page, int index); |
139 | void _unrotate_rect_for_annot_and_page(Page *page, Annot *annot, double *x1, double *y1, double *x2, double *y2); |
140 | AnnotQuadrilaterals *_page_new_quads_unrotated(Page *page, AnnotQuadrilaterals *quads); |
141 | AnnotQuadrilaterals *new_quads_from_offset_cropbox(const PDFRectangle *crop_box, AnnotQuadrilaterals *quads, gboolean add); |
142 | PopplerAction *_poppler_action_new(PopplerDocument *document, const LinkAction *link, const gchar *title); |
143 | PopplerLayer *_poppler_layer_new(PopplerDocument *document, Layer *layer, GList *rbgroup); |
144 | PopplerDest *_poppler_dest_new_goto(PopplerDocument *document, LinkDest *link_dest); |
145 | PopplerFormField *_poppler_form_field_new(PopplerDocument *document, FormWidget *field); |
146 | PopplerAttachment *_poppler_attachment_new(FileSpec *file); |
147 | PopplerMovie *_poppler_movie_new(const Movie *movie); |
148 | PopplerMedia *_poppler_media_new(const MediaRendition *media); |
149 | PopplerAnnot *_poppler_annot_new(Annot *annot); |
150 | PopplerAnnot *_poppler_annot_text_new(Annot *annot); |
151 | PopplerAnnot *_poppler_annot_free_text_new(Annot *annot); |
152 | PopplerAnnot *_poppler_annot_text_markup_new(Annot *annot); |
153 | PopplerAnnot *_poppler_annot_file_attachment_new(Annot *annot); |
154 | PopplerAnnot *_poppler_annot_movie_new(Annot *annot); |
155 | PopplerAnnot *_poppler_annot_screen_new(PopplerDocument *doc, Annot *annot); |
156 | PopplerAnnot *_poppler_annot_line_new(Annot *annot); |
157 | PopplerAnnot *_poppler_annot_circle_new(Annot *annot); |
158 | PopplerAnnot *_poppler_annot_square_new(Annot *annot); |
159 | PopplerAnnot *_poppler_annot_stamp_new(Annot *annot); |
160 | |
161 | const PDFRectangle *_poppler_annot_get_cropbox(PopplerAnnot *poppler_annot); |
162 | |
163 | char *_poppler_goo_string_to_utf8(const GooString *s); |
164 | gboolean _poppler_convert_pdf_date_to_gtime(const GooString *date, time_t *gdate); |
165 | GDateTime *_poppler_convert_pdf_date_to_date_time(const GooString *date); |
166 | GooString *_poppler_convert_date_time_to_pdf_date(GDateTime *datetime); |
167 | AnnotStampImageHelper *_poppler_convert_cairo_image_to_stamp_image_helper(const cairo_surface_t *image); |
168 | |
169 | void _poppler_error_cb(ErrorCategory category, Goffset pos, const char *message); |
170 | |
171 | #endif |
172 | |