diff options
Diffstat (limited to 'pdf/mupdf-internal.h')
-rw-r--r-- | pdf/mupdf-internal.h | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/pdf/mupdf-internal.h b/pdf/mupdf-internal.h index b50ba2fe..b1117726 100644 --- a/pdf/mupdf-internal.h +++ b/pdf/mupdf-internal.h @@ -146,11 +146,12 @@ typedef struct pdf_xref_entry_s pdf_xref_entry; struct pdf_xref_entry_s { + char type; /* 0=unset (f)ree i(n)use (o)bjstm */ int ofs; /* file offset / objstm object number */ int gen; /* generation / objstm index */ int stm_ofs; /* on-disk stream */ + fz_buffer *stm_buf; /* in-memory stream (for updated objects) */ pdf_obj *obj; /* stored/cached object */ - int type; /* 0=unset (f)ree i(n)use (o)bjstm */ }; typedef struct pdf_crypt_s pdf_crypt; @@ -217,19 +218,25 @@ struct pdf_document_s pdf_js *js; }; +pdf_document *pdf_open_document_no_run(fz_context *ctx, const char *filename); +pdf_document *pdf_open_document_no_run_with_stream(fz_stream *file); + void pdf_cache_object(pdf_document *doc, int num, int gen); fz_stream *pdf_open_inline_stream(pdf_document *doc, pdf_obj *stmobj, int length, fz_stream *chain, pdf_image_params *params); -fz_buffer *pdf_load_image_stream(pdf_document *doc, int num, int gen, pdf_image_params *params); -fz_stream *pdf_open_image_stream(pdf_document *doc, int num, int gen, pdf_image_params *params); +fz_buffer *pdf_load_image_stream(pdf_document *doc, int num, int gen, int orig_num, int orig_gen, pdf_image_params *params); +fz_stream *pdf_open_image_stream(pdf_document *doc, int num, int gen, int orig_num, int orig_gen, pdf_image_params *params); fz_stream *pdf_open_stream_with_offset(pdf_document *doc, int num, int gen, pdf_obj *dict, int stm_ofs); fz_stream *pdf_open_image_decomp_stream(fz_context *ctx, fz_buffer *, pdf_image_params *params, int *factor); +fz_stream *pdf_open_contents_stream(pdf_document *xref, pdf_obj *obj); +fz_buffer *pdf_load_raw_renumbered_stream(pdf_document *doc, int num, int gen, int orig_num, int orig_gen); +fz_buffer *pdf_load_renumbered_stream(pdf_document *doc, int num, int gen, int orig_num, int orig_gen); +fz_stream *pdf_open_raw_renumbered_stream(pdf_document *doc, int num, int gen, int orig_num, int orig_gen); void pdf_repair_xref(pdf_document *doc, pdf_lexbuf *buf); void pdf_repair_obj_stms(pdf_document *doc); void pdf_print_xref(pdf_document *); void pdf_resize_xref(pdf_document *doc, int newcap); -pdf_obj *pdf_new_stream_indirection(pdf_document *doc, pdf_obj *obj); /* * Encryption @@ -239,6 +246,7 @@ pdf_crypt *pdf_new_crypt(fz_context *ctx, pdf_obj *enc, pdf_obj *id); void pdf_free_crypt(fz_context *ctx, pdf_crypt *crypt); void pdf_crypt_obj(fz_context *ctx, pdf_crypt *crypt, pdf_obj *obj, int num, int gen); +void pdf_crypt_buffer(fz_context *ctx, pdf_crypt *crypt, fz_buffer *buf, int num, int gen); fz_stream *pdf_open_crypt(fz_stream *chain, pdf_crypt *crypt, int num, int gen); fz_stream *pdf_open_crypt_with_filter(fz_stream *chain, pdf_crypt *crypt, char *name, int num, int gen); @@ -284,7 +292,7 @@ struct pdf_pattern_s fz_matrix matrix; fz_rect bbox; pdf_obj *resources; - fz_buffer *contents; + pdf_obj *contents; }; pdf_pattern *pdf_load_pattern(pdf_document *doc, pdf_obj *obj); @@ -307,7 +315,7 @@ struct pdf_xobject_s int transparency; fz_colorspace *colorspace; pdf_obj *resources; - fz_buffer *contents; + pdf_obj *contents; pdf_obj *me; }; @@ -315,7 +323,7 @@ pdf_xobject *pdf_load_xobject(pdf_document *doc, pdf_obj *obj); pdf_obj *pdf_new_xobject(pdf_document *doc, fz_rect *bbox, fz_matrix *mat); pdf_xobject *pdf_keep_xobject(fz_context *ctx, pdf_xobject *xobj); void pdf_drop_xobject(fz_context *ctx, pdf_xobject *xobj); -void pdf_xobject_set_contents(fz_context *ctx, pdf_xobject *from, fz_buffer *buffer); +void pdf_xobject_set_contents(pdf_document *xref, pdf_xobject *from, fz_buffer *buffer); void pdf_update_appearance(pdf_document *doc, pdf_obj *obj); @@ -553,7 +561,7 @@ struct pdf_page_s int rotate; int transparency; pdf_obj *resources; - fz_buffer *contents; + pdf_obj *contents; fz_link *links; pdf_annot *annots; }; |