summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-01-30 15:44:17 +0100
committerTor Andersson <tor.andersson@artifex.com>2018-01-31 11:56:59 +0100
commite4b3a9d4c74272d421492b4967c6190cf26f8a73 (patch)
tree9ea0fd22e7ab95dedb3b6bb47da0878c22df5b5b
parente0573b69bcfe1bcdf0151d59806e1ff67ab53f41 (diff)
downloadmupdf-e4b3a9d4c74272d421492b4967c6190cf26f8a73.tar.xz
Add convenience functions to set dict/array values by primitives.
-rw-r--r--include/mupdf/pdf/object.h16
-rw-r--r--source/pdf/pdf-object.c72
2 files changed, 88 insertions, 0 deletions
diff --git a/include/mupdf/pdf/object.h b/include/mupdf/pdf/object.h
index 306ab21b..3875e2c9 100644
--- a/include/mupdf/pdf/object.h
+++ b/include/mupdf/pdf/object.h
@@ -130,6 +130,22 @@ void pdf_dict_del(fz_context *ctx, pdf_obj *dict, pdf_obj *key);
void pdf_dict_dels(fz_context *ctx, pdf_obj *dict, const char *key);
void pdf_sort_dict(fz_context *ctx, pdf_obj *dict);
+void pdf_dict_put_bool(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int x);
+void pdf_dict_put_int(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int64_t x);
+void pdf_dict_put_real(fz_context *ctx, pdf_obj *dict, pdf_obj *key, double x);
+void pdf_dict_put_name(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const char *x);
+void pdf_dict_put_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const char *x, size_t n);
+void pdf_dict_put_text_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const char *x);
+void pdf_dict_put_rect(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const fz_rect *x);
+void pdf_dict_put_matrix(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const fz_matrix *x);
+
+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);
+void pdf_array_push_name(fz_context *ctx, pdf_obj *array, const char *x);
+void pdf_array_push_string(fz_context *ctx, pdf_obj *array, const char *x, size_t n);
+void pdf_array_push_text_string(fz_context *ctx, pdf_obj *array, const char *x);
+
/*
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 b2ff3629..3d694d0c 100644
--- a/source/pdf/pdf-object.c
+++ b/source/pdf/pdf-object.c
@@ -2155,3 +2155,75 @@ int pdf_obj_refs(fz_context *ctx, pdf_obj *ref)
{
return (ref >= PDF_OBJ__LIMIT ? ref->refs : 0);
}
+
+/* Convenience functions */
+
+void pdf_dict_put_bool(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int x)
+{
+ pdf_dict_put_drop(ctx, dict, key, pdf_new_bool(ctx, NULL, x));
+}
+
+void pdf_dict_put_int(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int64_t x)
+{
+ pdf_dict_put_drop(ctx, dict, key, pdf_new_int(ctx, NULL, x));
+}
+
+void pdf_dict_put_real(fz_context *ctx, pdf_obj *dict, pdf_obj *key, double x)
+{
+ pdf_dict_put_drop(ctx, dict, key, pdf_new_real(ctx, NULL, x));
+}
+
+void pdf_dict_put_name(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const char *x)
+{
+ pdf_dict_put_drop(ctx, dict, key, pdf_new_name(ctx, NULL, x));
+}
+
+void pdf_dict_put_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const char *x, size_t n)
+{
+ pdf_dict_put_drop(ctx, dict, key, pdf_new_string(ctx, NULL, x, n));
+}
+
+void pdf_dict_put_text_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const char *x)
+{
+ pdf_dict_put_drop(ctx, dict, key, pdf_new_text_string(ctx, NULL, x));
+}
+
+void pdf_dict_put_rect(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const fz_rect *x)
+{
+ pdf_dict_put_drop(ctx, dict, key, pdf_new_rect(ctx, NULL, x));
+}
+
+void pdf_dict_put_matrix(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const fz_matrix *x)
+{
+ pdf_dict_put_drop(ctx, dict, key, pdf_new_matrix(ctx, NULL, x));
+}
+
+void pdf_array_push_bool(fz_context *ctx, pdf_obj *array, int x)
+{
+ pdf_array_push_drop(ctx, array, pdf_new_bool(ctx, NULL, x));
+}
+
+void pdf_array_push_int(fz_context *ctx, pdf_obj *array, int64_t x)
+{
+ pdf_array_push_drop(ctx, array, pdf_new_int(ctx, NULL, x));
+}
+
+void pdf_array_push_real(fz_context *ctx, pdf_obj *array, double x)
+{
+ pdf_array_push_drop(ctx, array, pdf_new_real(ctx, NULL, x));
+}
+
+void pdf_array_push_name(fz_context *ctx, pdf_obj *array, const char *x)
+{
+ pdf_array_push_drop(ctx, array, pdf_new_name(ctx, NULL, x));
+}
+
+void pdf_array_push_string(fz_context *ctx, pdf_obj *array, const char *x, size_t n)
+{
+ pdf_array_push_drop(ctx, array, pdf_new_string(ctx, NULL, x, n));
+}
+
+void pdf_array_push_text_string(fz_context *ctx, pdf_obj *array, const char *x)
+{
+ pdf_array_push_drop(ctx, array, pdf_new_text_string(ctx, NULL, x));
+}