]> git.donarmstrong.com Git - xournal.git/blob - src/xo-print.h
Update to version 0.3.
[xournal.git] / src / xo-print.h
1 typedef struct XrefTable {
2   int *data;
3   int last;
4   int n_alloc;
5 } XrefTable;
6
7 typedef struct PdfPageDesc {
8   struct PdfObj *resources, *mediabox, *contents;
9   int rotate;
10 } PdfPageDesc;
11
12 typedef struct PdfInfo {
13   int startxref;
14   struct PdfObj *trailerdict;
15   int npages;
16   struct PdfPageDesc *pages;
17 } PdfInfo;
18
19 typedef struct PdfObj {
20   int type;
21   int intval;
22   double realval;
23   char *str;
24   int len, num;
25   struct PdfObj **elts;
26   char **names;
27 } PdfObj;
28
29 #define PDFTYPE_CST 0    // intval: true=1, false=0, null=-1
30 #define PDFTYPE_INT 1    // intval
31 #define PDFTYPE_REAL 2   // realval
32 #define PDFTYPE_STRING 3 // str, len
33 #define PDFTYPE_NAME 4   // str
34 #define PDFTYPE_ARRAY 5  // num, elts
35 #define PDFTYPE_DICT 6   // num, elts, names
36 #define PDFTYPE_STREAM 7 // dict: num, elts, names; data: str, len
37 #define PDFTYPE_REF 8    // intval, num
38
39 struct PdfObj *parse_pdf_object(char **ptr, char *eof);
40 void free_pdfobj(struct PdfObj *obj);
41 struct PdfObj *dup_pdfobj(struct PdfObj *obj);
42 struct PdfObj *get_pdfobj(GString *pdfbuf, struct XrefTable *xref, struct PdfObj *obj);
43 void make_xref(struct XrefTable *xref, int nobj, int offset);
44
45 gboolean pdf_parse_info(GString *pdfbuf, struct PdfInfo *pdfinfo, struct XrefTable *xref);
46
47 // main printing functions
48
49 gboolean print_to_pdf(char *filename);
50
51 void print_job_render(GnomePrintJob *gpj, int fromPage, int toPage);