diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2018-04-26 17:01:54 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2018-04-27 14:15:15 +0200 |
commit | 617e280738a7dd91a6289f6e2e4e361785fb2281 (patch) | |
tree | f8cca05007266aae665a1cdcae72c69d9a3065f1 | |
parent | 229761e8b7e8685620cf4c038d848bccd563aa12 (diff) | |
download | mupdf-617e280738a7dd91a6289f6e2e4e361785fb2281.tar.xz |
Add pdf_dict_get_int, etc.
-rw-r--r-- | include/mupdf/pdf/object.h | 9 | ||||
-rw-r--r-- | source/pdf/pdf-object.c | 38 |
2 files changed, 47 insertions, 0 deletions
diff --git a/include/mupdf/pdf/object.h b/include/mupdf/pdf/object.h index ffe484be..dfbaf3b2 100644 --- a/include/mupdf/pdf/object.h +++ b/include/mupdf/pdf/object.h @@ -129,6 +129,11 @@ void pdf_dict_put_matrix(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const fz_ pdf_obj *pdf_dict_put_array(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int initial); pdf_obj *pdf_dict_put_dict(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int initial); +int pdf_dict_get_bool(fz_context *ctx, pdf_obj *dict, pdf_obj *key); +int pdf_dict_get_int(fz_context *ctx, pdf_obj *dict, pdf_obj *key); +float pdf_dict_get_real(fz_context *ctx, pdf_obj *dict, pdf_obj *key); +const char *pdf_dict_get_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key, size_t *sizep); + void pdf_array_push_bool(fz_context *ctx, pdf_obj *array, int x); void pdf_array_push_int(fz_context *ctx, pdf_obj *array, int64_t x); void pdf_array_push_real(fz_context *ctx, pdf_obj *array, double x); @@ -138,6 +143,10 @@ void pdf_array_push_text_string(fz_context *ctx, pdf_obj *array, const char *x); pdf_obj *pdf_array_push_array(fz_context *ctx, pdf_obj *array, int initial); pdf_obj *pdf_array_push_dict(fz_context *ctx, pdf_obj *array, int initial); +int pdf_array_get_bool(fz_context *ctx, pdf_obj *array, int index); +int pdf_array_get_int(fz_context *ctx, pdf_obj *array, int index); +float pdf_array_get_real(fz_context *ctx, pdf_obj *array, int index); + /* Recurse through the object structure setting the node's parent_num to num. parent_num is used when a subobject is to be changed during a document edit. diff --git a/source/pdf/pdf-object.c b/source/pdf/pdf-object.c index 837a8033..4360ea7c 100644 --- a/source/pdf/pdf-object.c +++ b/source/pdf/pdf-object.c @@ -2221,3 +2221,41 @@ pdf_obj *pdf_array_push_dict(fz_context *ctx, pdf_obj *array, int initial) pdf_array_push_drop(ctx, array, obj); return obj; } + +int pdf_dict_get_bool(fz_context *ctx, pdf_obj *dict, pdf_obj *key) +{ + return pdf_to_bool(ctx, pdf_dict_get(ctx, dict, key)); +} + +int pdf_dict_get_int(fz_context *ctx, pdf_obj *dict, pdf_obj *key) +{ + return pdf_to_int(ctx, pdf_dict_get(ctx, dict, key)); +} + +float pdf_dict_get_real(fz_context *ctx, pdf_obj *dict, pdf_obj *key) +{ + return pdf_to_real(ctx, pdf_dict_get(ctx, dict, key)); +} + +const char *pdf_dict_get_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key, size_t *sizep) +{ + pdf_obj *val = pdf_dict_get(ctx, dict, key); + if (sizep) + *sizep = pdf_to_str_len(ctx, val); + return pdf_to_str_buf(ctx, val); +} + +int pdf_array_get_bool(fz_context *ctx, pdf_obj *array, int index) +{ + return pdf_to_bool(ctx, pdf_array_get(ctx, array, index)); +} + +int pdf_array_get_int(fz_context *ctx, pdf_obj *array, int index) +{ + return pdf_to_int(ctx, pdf_array_get(ctx, array, index)); +} + +float pdf_array_get_real(fz_context *ctx, pdf_obj *array, int index) +{ + return pdf_to_real(ctx, pdf_array_get(ctx, array, index)); +} |