23#ifndef MUPDF_PDF_OBJECT_H
24#define MUPDF_PDF_OBJECT_H
35#define PDF_MAX_OBJECT_NUMBER 8388607
36#define PDF_MAX_GEN_NUMBER 65535
366#define PDF_NAME(X) ((pdf_obj*)(intptr_t)PDF_ENUM_NAME_##X)
368#define PDF_MAKE_NAME(STRING,NAME) PDF_ENUM_NAME_##NAME,
378#define PDF_NULL ((pdf_obj*)(intptr_t)PDF_ENUM_NULL)
379#define PDF_TRUE ((pdf_obj*)(intptr_t)PDF_ENUM_TRUE)
380#define PDF_FALSE ((pdf_obj*)(intptr_t)PDF_ENUM_FALSE)
381#define PDF_LIMIT ((pdf_obj*)(intptr_t)PDF_ENUM_LIMIT)
int pdf_array_get_bool(fz_context *ctx, pdf_obj *array, int index)
void pdf_abandon_operation(fz_context *ctx, pdf_document *doc)
int pdf_dict_get_int_default(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int def)
const char * pdf_dict_get_name(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
pdf_obj * pdf_new_real(fz_context *ctx, float f)
const char * pdf_array_get_string(fz_context *ctx, pdf_obj *array, int index, size_t *sizep)
void pdf_dict_put_rect(fz_context *ctx, pdf_obj *dict, pdf_obj *key, fz_rect x)
void pdf_add_journal_fragment(fz_context *ctx, pdf_document *doc, int parent, pdf_obj *copy, fz_buffer *copy_stream, int newobj)
void pdf_dict_put_indirect(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int num)
void pdf_dict_putl_drop(fz_context *ctx, pdf_obj *dict, pdf_obj *val,...)
int64_t pdf_dict_get_inheritable_date(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
void pdf_undo(fz_context *ctx, pdf_document *doc)
int pdf_is_string(fz_context *ctx, pdf_obj *obj)
void pdf_clean_obj(fz_context *ctx, pdf_obj *obj)
void pdf_redo(fz_context *ctx, pdf_document *doc)
void pdf_sort_dict(fz_context *ctx, pdf_obj *dict)
int pdf_is_int(fz_context *ctx, pdf_obj *obj)
void pdf_dict_put_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const char *x, size_t n)
pdf_document * pdf_get_indirect_document(fz_context *ctx, pdf_obj *obj)
pdf_obj * pdf_array_put_array(fz_context *ctx, pdf_obj *array, int i, int initial)
void pdf_begin_operation(fz_context *ctx, pdf_document *doc, const char *operation)
pdf_obj * pdf_dict_get_inheritable(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
void pdf_array_push_string(fz_context *ctx, pdf_obj *array, const char *x, size_t n)
int pdf_name_eq(fz_context *ctx, pdf_obj *a, pdf_obj *b)
pdf_obj * pdf_dict_geta(fz_context *ctx, pdf_obj *dict, pdf_obj *key, pdf_obj *abbrev)
void pdf_dict_putp_drop(fz_context *ctx, pdf_obj *dict, const char *path, pdf_obj *val)
int pdf_array_get_int(fz_context *ctx, pdf_obj *array, int index)
int pdf_undoredo_state(fz_context *ctx, pdf_document *doc, int *steps)
fz_matrix pdf_dict_get_inheritable_matrix(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
struct pdf_journal pdf_journal
Definition object.h:30
pdf_obj * pdf_dict_get(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
void pdf_dict_put(fz_context *ctx, pdf_obj *dict, pdf_obj *key, pdf_obj *val)
void pdf_dict_puts(fz_context *ctx, pdf_obj *dict, const char *key, pdf_obj *val)
void pdf_mark_list_init(fz_context *ctx, pdf_mark_list *list)
pdf_obj * pdf_new_array(fz_context *ctx, pdf_document *doc, int initialcap)
pdf_obj * pdf_new_name(fz_context *ctx, const char *str)
pdf_obj * pdf_dict_getsa(fz_context *ctx, pdf_obj *dict, const char *key, const char *abbrev)
pdf_mark_bits * pdf_new_mark_bits(fz_context *ctx, pdf_document *doc)
int pdf_can_undo(fz_context *ctx, pdf_document *doc)
char * pdf_format_date(fz_context *ctx, int64_t time, char *s, size_t n)
void pdf_serialise_journal(fz_context *ctx, pdf_document *doc, fz_output *out)
void pdf_debug_ref(fz_context *ctx, pdf_obj *obj)
int64_t pdf_dict_get_inheritable_int64(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
pdf_obj * pdf_dict_gets(fz_context *ctx, pdf_obj *dict, const char *key)
pdf_obj * pdf_dict_put_array(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int initial)
pdf_obj * pdf_copy_array(fz_context *ctx, pdf_obj *array)
void pdf_dict_putl(fz_context *ctx, pdf_obj *dict, pdf_obj *val,...)
void pdf_debug_obj(fz_context *ctx, pdf_obj *obj)
pdf_obj * pdf_dict_get_val(fz_context *ctx, pdf_obj *dict, int idx)
int pdf_dict_get_inheritable_int(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
fz_rect pdf_dict_get_inheritable_rect(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
void pdf_dict_put_name(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const char *x)
pdf_obj * pdf_dict_puts_dict(fz_context *ctx, pdf_obj *dict, const char *key, int initial)
void pdf_array_push(fz_context *ctx, pdf_obj *array, pdf_obj *obj)
void pdf_dict_put_date(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int64_t time)
const char * pdf_dict_get_inheritable_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key, size_t *sizep)
char * pdf_new_utf8_from_pdf_string(fz_context *ctx, const char *srcptr, size_t srclen)
const char * pdf_to_name(fz_context *ctx, pdf_obj *obj)
pdf_obj * pdf_dict_getp_inheritable(fz_context *ctx, pdf_obj *dict, const char *path)
void pdf_drop_mark_bits(fz_context *ctx, pdf_mark_bits *marks)
int64_t pdf_parse_date(fz_context *ctx, const char *s)
void pdf_begin_implicit_operation(fz_context *ctx, pdf_document *doc)
int pdf_to_gen(fz_context *ctx, pdf_obj *obj)
void pdf_deserialise_journal(fz_context *ctx, pdf_document *doc, fz_stream *stm)
int pdf_is_name(fz_context *ctx, pdf_obj *obj)
pdf_obj * pdf_new_text_string(fz_context *ctx, const char *s)
pdf_obj * pdf_new_string(fz_context *ctx, const char *str, size_t len)
pdf_obj * pdf_new_dict(fz_context *ctx, pdf_document *doc, int initialcap)
struct pdf_obj pdf_obj
Definition object.h:44
void pdf_mark_list_free(fz_context *ctx, pdf_mark_list *list)
pdf_obj * pdf_ensure_indirect(fz_context *ctx, pdf_obj *obj)
void pdf_end_operation(fz_context *ctx, pdf_document *doc)
const char * pdf_dict_get_inheritable_name(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
int pdf_obj_marked(fz_context *ctx, pdf_obj *obj)
void pdf_array_put_bool(fz_context *ctx, pdf_obj *array, int i, int x)
float pdf_dict_get_real(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
void pdf_dict_put_drop(fz_context *ctx, pdf_obj *dict, pdf_obj *key, pdf_obj *val)
void pdf_array_push_bool(fz_context *ctx, pdf_obj *array, int x)
void pdf_dict_put_bool(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int x)
fz_quad pdf_to_quad(fz_context *ctx, pdf_obj *array, int offset)
int pdf_to_bool_default(fz_context *ctx, pdf_obj *obj, int def)
pdf_obj * pdf_keep_obj(fz_context *ctx, pdf_obj *obj)
void pdf_dict_putp(fz_context *ctx, pdf_obj *dict, const char *path, pdf_obj *val)
int pdf_is_number(fz_context *ctx, pdf_obj *obj)
int pdf_is_indirect(fz_context *ctx, pdf_obj *obj)
pdf_obj * pdf_new_date(fz_context *ctx, pdf_document *doc, int64_t time)
float pdf_to_real_default(fz_context *ctx, pdf_obj *obj, float def)
void pdf_mark_bits_reset(fz_context *ctx, pdf_mark_bits *marks)
int pdf_is_stream(fz_context *ctx, pdf_obj *obj)
pdf_obj * pdf_array_put_dict(fz_context *ctx, pdf_obj *array, int i, int initial)
void pdf_array_push_int(fz_context *ctx, pdf_obj *array, int64_t x)
void pdf_mark_list_pop(fz_context *ctx, pdf_mark_list *list)
void pdf_dict_put_int(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int64_t x)
void pdf_set_str_len(fz_context *ctx, pdf_obj *obj, size_t newlen)
void pdf_set_int(fz_context *ctx, pdf_obj *obj, int64_t i)
int pdf_obj_is_dirty(fz_context *ctx, pdf_obj *obj)
int64_t pdf_dict_get_int64(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
void pdf_dict_del(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
void pdf_unmark_obj(fz_context *ctx, pdf_obj *obj)
int pdf_dict_get_inheritable_bool(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
float pdf_array_get_real(fz_context *ctx, pdf_obj *array, int index)
int pdf_array_contains(fz_context *ctx, pdf_obj *array, pdf_obj *obj)
void pdf_array_insert_drop(fz_context *ctx, pdf_obj *array, pdf_obj *obj, int index)
pdf_obj * pdf_dict_get_key(fz_context *ctx, pdf_obj *dict, int idx)
int pdf_obj_parent_num(fz_context *ctx, pdf_obj *obj)
pdf_obj * pdf_new_int(fz_context *ctx, int64_t i)
void pdf_dict_dels(fz_context *ctx, pdf_obj *dict, const char *key)
void pdf_dirty_obj(fz_context *ctx, pdf_obj *obj)
int pdf_is_bool(fz_context *ctx, pdf_obj *obj)
const char * pdf_to_text_string(fz_context *ctx, pdf_obj *obj)
const char * pdf_dict_get_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key, size_t *sizep)
fz_point pdf_to_point(fz_context *ctx, pdf_obj *array, int offset)
size_t pdf_to_str_len(fz_context *ctx, pdf_obj *obj)
void pdf_drop_journal(fz_context *ctx, pdf_journal *journal)
int pdf_mark_list_push(fz_context *ctx, pdf_mark_list *list, pdf_obj *obj)
int pdf_is_array(fz_context *ctx, pdf_obj *obj)
const char * pdf_dict_get_text_string_opt(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
char * pdf_sprint_obj(fz_context *ctx, char *buf, size_t cap, size_t *len, pdf_obj *obj, int tight, int ascii)
pdf_obj * pdf_copy_dict(fz_context *ctx, pdf_obj *dict)
pdf_obj * pdf_dict_gets_inheritable(fz_context *ctx, pdf_obj *dict, const char *key)
pdf_obj * pdf_array_push_dict(fz_context *ctx, pdf_obj *array, int initial)
void pdf_array_push_text_string(fz_context *ctx, pdf_obj *array, const char *x)
void pdf_array_put_int(fz_context *ctx, pdf_obj *array, int i, int64_t x)
const char * pdf_to_string(fz_context *ctx, pdf_obj *obj, size_t *sizep)
int pdf_array_len(fz_context *ctx, pdf_obj *array)
void pdf_array_push_drop(fz_context *ctx, pdf_obj *array, pdf_obj *obj)
void pdf_array_put_string(fz_context *ctx, pdf_obj *array, int i, const char *x, size_t n)
const char * pdf_array_get_name(fz_context *ctx, pdf_obj *array, int index)
void pdf_print_encrypted_obj(fz_context *ctx, fz_output *out, pdf_obj *obj, int tight, int ascii, pdf_crypt *crypt, int num, int gen, int *sep)
int pdf_mark_bits_set(fz_context *ctx, pdf_mark_bits *marks, pdf_obj *obj)
void pdf_dict_get_put_drop(fz_context *ctx, pdf_obj *dict, pdf_obj *key, pdf_obj *val, pdf_obj **old_val)
const char * pdf_undoredo_step(fz_context *ctx, pdf_document *doc, int step)
void pdf_discard_journal(fz_context *ctx, pdf_journal *journal)
fz_matrix pdf_dict_get_matrix(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
fz_matrix pdf_to_matrix(fz_context *ctx, pdf_obj *array)
void pdf_dict_put_point(fz_context *ctx, pdf_obj *dict, pdf_obj *key, fz_point x)
void pdf_enable_journal(fz_context *ctx, pdf_document *doc)
struct pdf_crypt pdf_crypt
Definition object.h:29
int64_t pdf_dict_get_date(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
int pdf_dict_len(fz_context *ctx, pdf_obj *dict)
pdf_obj * pdf_deep_copy_obj(fz_context *ctx, pdf_obj *obj)
int64_t pdf_to_int64(fz_context *ctx, pdf_obj *obj)
pdf_obj * pdf_array_push_array(fz_context *ctx, pdf_obj *array, int initial)
pdf_obj * pdf_new_indirect(fz_context *ctx, pdf_document *doc, int64_t num, int gen)
const char * pdf_array_get_text_string(fz_context *ctx, pdf_obj *array, int index)
int pdf_can_redo(fz_context *ctx, pdf_document *doc)
int pdf_objcmp_deep(fz_context *ctx, pdf_obj *a, pdf_obj *b)
float pdf_dict_get_inheritable_real(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
pdf_obj * pdf_new_rect(fz_context *ctx, pdf_document *doc, fz_rect rect)
int pdf_is_null(fz_context *ctx, pdf_obj *obj)
void pdf_set_obj_parent(fz_context *ctx, pdf_obj *obj, int num)
void pdf_array_put_text_string(fz_context *ctx, pdf_obj *array, int i, const char *x)
void pdf_dict_put_matrix(fz_context *ctx, pdf_obj *dict, pdf_obj *key, fz_matrix x)
char * pdf_load_stream_or_string_as_utf8(fz_context *ctx, pdf_obj *src)
char * pdf_to_str_buf(fz_context *ctx, pdf_obj *obj)
int pdf_to_int(fz_context *ctx, pdf_obj *obj)
void pdf_dict_puts_drop(fz_context *ctx, pdf_obj *dict, const char *key, pdf_obj *val)
int pdf_is_image_stream(fz_context *ctx, pdf_obj *obj)
fz_matrix pdf_array_get_matrix(fz_context *ctx, pdf_obj *array, int index)
int pdf_array_find(fz_context *ctx, pdf_obj *array, pdf_obj *obj)
void pdf_array_put_real(fz_context *ctx, pdf_obj *array, int i, double x)
int pdf_mark_obj(fz_context *ctx, pdf_obj *obj)
void pdf_array_delete(fz_context *ctx, pdf_obj *array, int index)
void pdf_print_obj(fz_context *ctx, fz_output *out, pdf_obj *obj, int tight, int ascii)
float pdf_to_real(fz_context *ctx, pdf_obj *obj)
float pdf_dict_get_real_default(fz_context *ctx, pdf_obj *dict, pdf_obj *key, float def)
int pdf_dict_get_int(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
void pdf_set_obj_memo(fz_context *ctx, pdf_obj *obj, int bit, int memo)
@ PDF_ENUM_NULL
Definition object.h:370
@ PDF_ENUM_TRUE
Definition object.h:371
@ PDF_ENUM_LIMIT
Definition object.h:1006
@ PDF_ENUM_FALSE
Definition object.h:372
void pdf_array_push_name(fz_context *ctx, pdf_obj *array, const char *x)
void pdf_drop_obj(fz_context *ctx, pdf_obj *obj)
int64_t pdf_to_date(fz_context *ctx, pdf_obj *time)
pdf_obj * pdf_new_point(fz_context *ctx, pdf_document *doc, fz_point point)
void pdf_array_put_drop(fz_context *ctx, pdf_obj *array, int i, pdf_obj *obj)
pdf_obj * pdf_array_get(fz_context *ctx, pdf_obj *array, int i)
int pdf_obj_is_singleton(fz_context *ctx, pdf_obj *obj)
pdf_obj * pdf_new_matrix(fz_context *ctx, pdf_document *doc, fz_matrix mtx)
int pdf_dict_get_bool_default(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int def)
int pdf_is_real(fz_context *ctx, pdf_obj *obj)
const char * pdf_dict_get_text_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
pdf_document * pdf_pin_document(fz_context *ctx, pdf_obj *obj)
int pdf_objcmp(fz_context *ctx, pdf_obj *a, pdf_obj *b)
void pdf_dict_put_val_null(fz_context *ctx, pdf_obj *obj, int idx)
int pdf_to_num(fz_context *ctx, pdf_obj *obj)
void pdf_dict_put_real(fz_context *ctx, pdf_obj *dict, pdf_obj *key, double x)
int pdf_obj_refs(fz_context *ctx, pdf_obj *ref)
fz_rect pdf_dict_get_rect(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
int pdf_cycle(fz_context *ctx, pdf_cycle_list *here, pdf_cycle_list *prev, pdf_obj *obj)
int pdf_obj_memo(fz_context *ctx, pdf_obj *obj, int bit, int *memo)
char * pdf_new_utf8_from_pdf_stream_obj(fz_context *ctx, pdf_obj *src)
const char * pdf_dict_get_inheritable_text_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
int pdf_obj_num_is_stream(fz_context *ctx, pdf_document *doc, int num)
void pdf_array_insert(fz_context *ctx, pdf_obj *array, pdf_obj *obj, int index)
int pdf_objcmp_resolve(fz_context *ctx, pdf_obj *a, pdf_obj *b)
void pdf_array_push_real(fz_context *ctx, pdf_obj *array, double x)
int pdf_is_dict(fz_context *ctx, pdf_obj *obj)
fz_rect pdf_array_get_rect(fz_context *ctx, pdf_obj *array, int index)
pdf_document * pdf_get_bound_document(fz_context *ctx, pdf_obj *obj)
void pdf_array_put(fz_context *ctx, pdf_obj *array, int i, pdf_obj *obj)
fz_point pdf_dict_get_point(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
void pdf_dict_put_text_string(fz_context *ctx, pdf_obj *dict, pdf_obj *key, const char *x)
pdf_obj * pdf_dict_put_dict(fz_context *ctx, pdf_obj *dict, pdf_obj *key, int initial)
fz_rect pdf_to_rect(fz_context *ctx, pdf_obj *array)
pdf_obj * pdf_dict_getp(fz_context *ctx, pdf_obj *dict, const char *path)
pdf_obj * pdf_dict_getl(fz_context *ctx, pdf_obj *dict,...)
char * pdf_new_utf8_from_pdf_string_obj(fz_context *ctx, pdf_obj *src)
int pdf_to_bool(fz_context *ctx, pdf_obj *obj)
int pdf_to_int_default(fz_context *ctx, pdf_obj *obj, int def)
int pdf_mark_list_check(fz_context *ctx, pdf_mark_list *list, pdf_obj *obj)
int pdf_dict_get_bool(fz_context *ctx, pdf_obj *dict, pdf_obj *key)
pdf_obj * pdf_drop_singleton_obj(fz_context *ctx, pdf_obj *obj)
void pdf_array_put_name(fz_context *ctx, pdf_obj *array, int i, const char *x)
Definition geometry.h:388
Definition geometry.h:187
Definition geometry.h:782
Definition geometry.h:231
int num
Definition object.h:115
pdf_cycle_list * up
Definition object.h:114
Definition document.h:463
int len
Definition object.h:128
unsigned char bits[FZ_FLEXIBLE_ARRAY]
Definition object.h:129
int * list
Definition object.h:141
int max
Definition object.h:140
int len
Definition object.h:139
int local_list[8]
Definition object.h:142
Definition interpret.h:44
#define FZ_FLEXIBLE_ARRAY
Definition system.h:46