Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
7638 views
1
#ifndef MUPDF_PDF_JAVASCRIPT_H
2
#define MUPDF_PDF_JAVASCRIPT_H
3
4
typedef struct pdf_js_event_s
5
{
6
pdf_obj *target;
7
char *value;
8
int rc;
9
} pdf_js_event;
10
11
void pdf_enable_js(fz_context *ctx, pdf_document *doc);
12
void pdf_disable_js(fz_context *ctx, pdf_document *doc);
13
int pdf_js_supported(fz_context *ctx, pdf_document *doc);
14
15
void pdf_js_setup_event(pdf_js *js, pdf_js_event *e);
16
pdf_js_event *pdf_js_get_event(pdf_js *js);
17
void pdf_js_execute(pdf_js *js, char *code);
18
void pdf_js_execute_count(pdf_js *js, char *code, int count);
19
20
/*
21
* Javascript engine interface
22
*/
23
typedef struct pdf_jsimp_s pdf_jsimp;
24
typedef struct pdf_jsimp_type_s pdf_jsimp_type;
25
typedef struct pdf_jsimp_obj_s pdf_jsimp_obj;
26
27
typedef void (pdf_jsimp_dtr)(void *jsctx, void *obj);
28
typedef pdf_jsimp_obj *(pdf_jsimp_method)(void *jsctx, void *obj, int argc, pdf_jsimp_obj *args[]);
29
typedef pdf_jsimp_obj *(pdf_jsimp_getter)(void *jsctx, void *obj);
30
typedef void (pdf_jsimp_setter)(void *jsctx, void *obj, pdf_jsimp_obj *val);
31
32
enum
33
{
34
JS_TYPE_UNKNOWN,
35
JS_TYPE_NULL,
36
JS_TYPE_STRING,
37
JS_TYPE_NUMBER,
38
JS_TYPE_ARRAY,
39
JS_TYPE_BOOLEAN
40
};
41
42
pdf_jsimp *pdf_new_jsimp(fz_context *ctx, void *jsctx);
43
void pdf_drop_jsimp(pdf_jsimp *imp);
44
45
pdf_jsimp_type *pdf_jsimp_new_type(pdf_jsimp *imp, pdf_jsimp_dtr *dtr, char *name);
46
void pdf_jsimp_drop_type(pdf_jsimp *imp, pdf_jsimp_type *type);
47
void pdf_jsimp_addmethod(pdf_jsimp *imp, pdf_jsimp_type *type, char *name, pdf_jsimp_method *meth);
48
void pdf_jsimp_addproperty(pdf_jsimp *imp, pdf_jsimp_type *type, char *name, pdf_jsimp_getter *get, pdf_jsimp_setter *set);
49
void pdf_jsimp_set_global_type(pdf_jsimp *imp, pdf_jsimp_type *type);
50
51
pdf_jsimp_obj *pdf_jsimp_new_obj(pdf_jsimp *imp, pdf_jsimp_type *type, void *obj);
52
void pdf_jsimp_drop_obj(pdf_jsimp *imp, pdf_jsimp_obj *obj);
53
54
int pdf_jsimp_to_type(pdf_jsimp *imp, pdf_jsimp_obj *obj);
55
56
pdf_jsimp_obj *pdf_jsimp_from_string(pdf_jsimp *imp, char *str);
57
char *pdf_jsimp_to_string(pdf_jsimp *imp, pdf_jsimp_obj *obj);
58
59
pdf_jsimp_obj *pdf_jsimp_from_number(pdf_jsimp *imp, double num);
60
double pdf_jsimp_to_number(pdf_jsimp *imp, pdf_jsimp_obj *obj);
61
62
int pdf_jsimp_array_len(pdf_jsimp *imp, pdf_jsimp_obj *obj);
63
pdf_jsimp_obj *pdf_jsimp_array_item(pdf_jsimp *imp, pdf_jsimp_obj *obj, int i);
64
65
pdf_jsimp_obj *pdf_jsimp_property(pdf_jsimp *imp, pdf_jsimp_obj *obj, char *prop);
66
67
void pdf_jsimp_execute(pdf_jsimp *imp, char *code);
68
void pdf_jsimp_execute_count(pdf_jsimp *imp, char *code, int count);
69
70
#endif
71
72