diff options
Diffstat (limited to 'source/pdf/pdf-field.c')
-rw-r--r-- | source/pdf/pdf-field.c | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/source/pdf/pdf-field.c b/source/pdf/pdf-field.c index e8f2508f..5105125a 100644 --- a/source/pdf/pdf-field.c +++ b/source/pdf/pdf-field.c @@ -1,23 +1,22 @@ #include "mupdf/pdf.h" -pdf_obj *pdf_get_inheritable(pdf_document *doc, pdf_obj *obj, char *key) +pdf_obj *pdf_get_inheritable(fz_context *ctx, pdf_document *doc, pdf_obj *obj, char *key) { pdf_obj *fobj = NULL; while (!fobj && obj) { - fobj = pdf_dict_gets(obj, key); + fobj = pdf_dict_gets(ctx, obj, key); if (!fobj) - obj = pdf_dict_gets(obj, "Parent"); + obj = pdf_dict_gets(ctx, obj, "Parent"); } - return fobj ? fobj : pdf_dict_gets(pdf_dict_gets(pdf_dict_gets(pdf_trailer(doc), "Root"), "AcroForm"), key); + return fobj ? fobj : pdf_dict_gets(ctx, pdf_dict_gets(ctx, pdf_dict_gets(ctx, pdf_trailer(ctx, doc), "Root"), "AcroForm"), key); } -char *pdf_get_string_or_stream(pdf_document *doc, pdf_obj *obj) +char *pdf_get_string_or_stream(fz_context *ctx, pdf_document *doc, pdf_obj *obj) { - fz_context *ctx = doc->ctx; int len = 0; char *buf = NULL; fz_buffer *strmbuf = NULL; @@ -27,14 +26,14 @@ char *pdf_get_string_or_stream(pdf_document *doc, pdf_obj *obj) fz_var(text); fz_try(ctx) { - if (pdf_is_string(obj)) + if (pdf_is_string(ctx, obj)) { - len = pdf_to_str_len(obj); - buf = pdf_to_str_buf(obj); + len = pdf_to_str_len(ctx, obj); + buf = pdf_to_str_buf(ctx, obj); } - else if (pdf_is_stream(doc, pdf_to_num(obj), pdf_to_gen(obj))) + else if (pdf_is_stream(ctx, doc, pdf_to_num(ctx, obj), pdf_to_gen(ctx, obj))) { - strmbuf = pdf_load_stream(doc, pdf_to_num(obj), pdf_to_gen(obj)); + strmbuf = pdf_load_stream(ctx, doc, pdf_to_num(ctx, obj), pdf_to_gen(ctx, obj)); len = fz_buffer_storage(ctx, strmbuf, (unsigned char **)&buf); } @@ -58,25 +57,25 @@ char *pdf_get_string_or_stream(pdf_document *doc, pdf_obj *obj) return text; } -char *pdf_field_value(pdf_document *doc, pdf_obj *field) +char *pdf_field_value(fz_context *ctx, pdf_document *doc, pdf_obj *field) { - return pdf_get_string_or_stream(doc, pdf_get_inheritable(doc, field, "V")); + return pdf_get_string_or_stream(ctx, doc, pdf_get_inheritable(ctx, doc, field, "V")); } -int pdf_get_field_flags(pdf_document *doc, pdf_obj *obj) +int pdf_get_field_flags(fz_context *ctx, pdf_document *doc, pdf_obj *obj) { - return pdf_to_int(pdf_get_inheritable(doc, obj, "Ff")); + return pdf_to_int(ctx, pdf_get_inheritable(ctx, doc, obj, "Ff")); } -static char *get_field_type_name(pdf_document *doc, pdf_obj *obj) +static char *get_field_type_name(fz_context *ctx, pdf_document *doc, pdf_obj *obj) { - return pdf_to_name(pdf_get_inheritable(doc, obj, "FT")); + return pdf_to_name(ctx, pdf_get_inheritable(ctx, doc, obj, "FT")); } -int pdf_field_type(pdf_document *doc, pdf_obj *obj) +int pdf_field_type(fz_context *ctx, pdf_document *doc, pdf_obj *obj) { - char *type = get_field_type_name(doc, obj); - int flags = pdf_get_field_flags(doc, obj); + char *type = get_field_type_name(ctx, doc, obj); + int flags = pdf_get_field_flags(ctx, doc, obj); if (!strcmp(type, "Btn")) { @@ -102,7 +101,7 @@ int pdf_field_type(pdf_document *doc, pdf_obj *obj) return PDF_WIDGET_TYPE_NOT_WIDGET; } -void pdf_set_field_type(pdf_document *doc, pdf_obj *obj, int type) +void pdf_set_field_type(fz_context *ctx, pdf_document *doc, pdf_obj *obj, int type) { int setbits = 0; int clearbits = 0; @@ -140,13 +139,13 @@ void pdf_set_field_type(pdf_document *doc, pdf_obj *obj, int type) } if (typename) - pdf_dict_puts_drop(obj, "FT", pdf_new_name(doc, typename)); + pdf_dict_puts_drop(ctx, obj, "FT", pdf_new_name(ctx, doc, typename)); if (setbits != 0 || clearbits != 0) { - int bits = pdf_to_int(pdf_dict_gets(obj, "Ff")); + int bits = pdf_to_int(ctx, pdf_dict_gets(ctx, obj, "Ff")); bits &= ~clearbits; bits |= setbits; - pdf_dict_puts_drop(obj, "Ff", pdf_new_int(doc, bits)); + pdf_dict_puts_drop(ctx, obj, "Ff", pdf_new_int(ctx, doc, bits)); } } |