summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-interpret-imp.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-interpret-imp.h')
-rw-r--r--source/pdf/pdf-interpret-imp.h158
1 files changed, 0 insertions, 158 deletions
diff --git a/source/pdf/pdf-interpret-imp.h b/source/pdf/pdf-interpret-imp.h
deleted file mode 100644
index 9c72bfe2..00000000
--- a/source/pdf/pdf-interpret-imp.h
+++ /dev/null
@@ -1,158 +0,0 @@
-#ifndef PDF_INTERPRET_IMP_H
-#define PDF_INTERPRET_IMP_H
-
-#include "mupdf/pdf.h"
-
-typedef struct pdf_csi_s pdf_csi;
-typedef struct pdf_gstate_s pdf_gstate;
-
-typedef void (*pdf_operator_fn)(pdf_csi *, void *user);
-typedef void (*pdf_process_annot_fn)(pdf_csi *csi, void *user, pdf_obj *resources, pdf_annot *annot);
-typedef void (*pdf_process_stream_fn)(pdf_csi *csi, void *user, pdf_lexbuf *buf);
-typedef void (*pdf_process_contents_fn)(pdf_csi *csi, void *user, pdf_obj *resources, pdf_obj *contents);
-
-typedef enum {
- /* The first section of op's all run without a try/catch */
- PDF_OP_dquote,
- PDF_OP_squote,
- PDF_OP_B,
- PDF_OP_Bstar,
- PDF_OP_BDC,
- PDF_OP_BI,
- PDF_OP_BMC,
- PDF_OP_BT,
- PDF_OP_BX,
- PDF_OP_CS,
- PDF_OP_DP,
- PDF_OP_EMC,
- PDF_OP_ET,
- PDF_OP_EX,
- PDF_OP_F,
- PDF_OP_G,
- PDF_OP_J,
- PDF_OP_K,
- PDF_OP_M,
- PDF_OP_MP,
- PDF_OP_Q,
- PDF_OP_RG,
- PDF_OP_S,
- PDF_OP_SC,
- PDF_OP_SCN,
- PDF_OP_Tstar,
- PDF_OP_TD,
- PDF_OP_TJ,
- PDF_OP_TL,
- PDF_OP_Tc,
- PDF_OP_Td,
- PDF_OP_Tj,
- PDF_OP_Tm,
- PDF_OP_Tr,
- PDF_OP_Ts,
- PDF_OP_Tw,
- PDF_OP_Tz,
- PDF_OP_W,
- PDF_OP_Wstar,
- PDF_OP_b,
- PDF_OP_bstar,
- PDF_OP_c,
- PDF_OP_cm,
- PDF_OP_cs,
- PDF_OP_d,
- PDF_OP_d0,
- PDF_OP_d1,
- PDF_OP_f,
- PDF_OP_fstar,
- PDF_OP_g,
- PDF_OP_h,
- PDF_OP_i,
- PDF_OP_j,
- PDF_OP_k,
- PDF_OP_l,
- PDF_OP_m,
- PDF_OP_n,
- PDF_OP_q,
- PDF_OP_re,
- PDF_OP_rg,
- PDF_OP_ri,
- PDF_OP_s,
- PDF_OP_sc,
- PDF_OP_scn,
- PDF_OP_v,
- PDF_OP_w,
- PDF_OP_y,
- /* ops in this second section require additional try/catch handling */
- PDF_OP_Do,
- PDF_OP_Tf,
- PDF_OP_gs,
- PDF_OP_sh,
- /* END is used to signify end of stream (finalise and close down) */
- PDF_OP_END,
- /* And finally we have a max */
- PDF_OP_MAX
-} PDF_OP;
-
-typedef struct pdf_processor_s {
- pdf_operator_fn op_table[PDF_OP_MAX];
- pdf_process_annot_fn process_annot;
- pdf_process_stream_fn process_stream;
- pdf_process_contents_fn process_contents;
-} pdf_processor;
-
-typedef struct pdf_process_s
-{
- const pdf_processor *processor;
- void *state;
-} pdf_process;
-
-struct pdf_csi_s
-{
- fz_context *ctx;
- pdf_document *doc;
-
- /* Current resource dict and file. These are in here to reduce param
- * passing. */
- pdf_obj *rdb;
- fz_stream *file;
-
- /* Operator table */
- pdf_process process;
-
- /* interpreter stack */
- pdf_obj *obj;
- char name[256];
- unsigned char string[256];
- int string_len;
- float stack[32];
- int top;
- fz_image *img;
-
- int xbalance;
- int in_text;
-
- fz_rect d1_rect;
-
- /* cookie support */
- fz_cookie *cookie;
-};
-
-static inline void pdf_process_op(pdf_csi *csi, int op, const pdf_process *process)
-{
- process->processor->op_table[op](csi, process->state);
-}
-
-/* Helper functions for the filter implementations to call */
-void pdf_process_contents_object(pdf_csi *csi, pdf_obj *rdb, pdf_obj *contents);
-void pdf_process_stream(pdf_csi *csi, pdf_lexbuf *buf);
-
-/* Functions to set up pdf_process structures */
-pdf_process *pdf_init_process_run(fz_context *ctx, pdf_process *process, fz_device *dev, const fz_matrix *ctm, const char *event, pdf_gstate *gstate, int nested);
-pdf_process *pdf_init_process_buffer(fz_context *ctx, pdf_process *process, fz_buffer *buffer);
-pdf_process *pdf_init_process_filter(fz_context *ctx, pdf_process *process, pdf_process *underlying, pdf_obj *resources);
-
-/* Functions to actually use the pdf_process structures to process
- * annotations, glyphs and general stream objects */
-void pdf_process_annot(fz_context *ctx, pdf_document *doc, pdf_page *page, pdf_annot *annot, const pdf_process *process, fz_cookie *cookie);
-void pdf_process_glyph(fz_context *ctx, pdf_document *doc, pdf_obj *resources, fz_buffer *contents, pdf_process *process);
-void pdf_process_stream_object(fz_context *ctx, pdf_document *doc, pdf_obj *obj, const pdf_process *process, pdf_obj *res, fz_cookie *cookie);
-
-#endif