diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2013-06-12 13:46:21 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2013-06-18 00:06:46 +0200 |
commit | 03e5755b93e90cc4c09daad4c79b6016bf4ce43c (patch) | |
tree | d2992e30fcddf864ad64bd026884e79d92903977 /pdf/mupdf.h | |
parent | b695c87abcdbe0ddc35c5e3a7ee8f5f58ee577f1 (diff) | |
download | mupdf-03e5755b93e90cc4c09daad4c79b6016bf4ce43c.tar.xz |
Move header files into separate include directory.
Diffstat (limited to 'pdf/mupdf.h')
-rw-r--r-- | pdf/mupdf.h | 336 |
1 files changed, 0 insertions, 336 deletions
diff --git a/pdf/mupdf.h b/pdf/mupdf.h deleted file mode 100644 index 3546daed..00000000 --- a/pdf/mupdf.h +++ /dev/null @@ -1,336 +0,0 @@ -#ifndef MUPDF_H -#define MUPDF_H - -#include "fitz.h" - -typedef struct pdf_document_s pdf_document; - -/* - * Dynamic objects. - * The same type of objects as found in PDF and PostScript. - * Used by the filters and the mupdf parser. - */ - -typedef struct pdf_obj_s pdf_obj; - -pdf_obj *pdf_new_null(fz_context *ctx); -pdf_obj *pdf_new_bool(fz_context *ctx, int b); -pdf_obj *pdf_new_int(fz_context *ctx, int i); -pdf_obj *pdf_new_real(fz_context *ctx, float f); -pdf_obj *pdf_new_name(fz_context *ctx, const char *str); -pdf_obj *pdf_new_string(fz_context *ctx, const char *str, int len); -pdf_obj *pdf_new_indirect(fz_context *ctx, int num, int gen, void *doc); -pdf_obj *pdf_new_array(fz_context *ctx, int initialcap); -pdf_obj *pdf_new_dict(fz_context *ctx, int initialcap); -pdf_obj *pdf_new_rect(fz_context *ctx, const fz_rect *rect); -pdf_obj *pdf_new_matrix(fz_context *ctx, const fz_matrix *mtx); -pdf_obj *pdf_copy_array(fz_context *ctx, pdf_obj *array); -pdf_obj *pdf_copy_dict(fz_context *ctx, pdf_obj *dict); - -pdf_obj *pdf_new_obj_from_str(fz_context *ctx, const char *src); - -pdf_obj *pdf_keep_obj(pdf_obj *obj); -void pdf_drop_obj(pdf_obj *obj); - -/* type queries */ -int pdf_is_null(pdf_obj *obj); -int pdf_is_bool(pdf_obj *obj); -int pdf_is_int(pdf_obj *obj); -int pdf_is_real(pdf_obj *obj); -int pdf_is_name(pdf_obj *obj); -int pdf_is_string(pdf_obj *obj); -int pdf_is_array(pdf_obj *obj); -int pdf_is_dict(pdf_obj *obj); -int pdf_is_indirect(pdf_obj *obj); -int pdf_is_stream(pdf_document *doc, int num, int gen); - -int pdf_objcmp(pdf_obj *a, pdf_obj *b); - -/* obj marking and unmarking functions - to avoid infinite recursions. */ -int pdf_obj_marked(pdf_obj *obj); -int pdf_obj_mark(pdf_obj *obj); -void pdf_obj_unmark(pdf_obj *obj); - -/* safe, silent failure, no error reporting on type mismatches */ -int pdf_to_bool(pdf_obj *obj); -int pdf_to_int(pdf_obj *obj); -float pdf_to_real(pdf_obj *obj); -char *pdf_to_name(pdf_obj *obj); -char *pdf_to_str_buf(pdf_obj *obj); -pdf_obj *pdf_to_dict(pdf_obj *obj); -int pdf_to_str_len(pdf_obj *obj); -int pdf_to_num(pdf_obj *obj); -int pdf_to_gen(pdf_obj *obj); - -int pdf_array_len(pdf_obj *array); -pdf_obj *pdf_array_get(pdf_obj *array, int i); -void pdf_array_put(pdf_obj *array, int i, pdf_obj *obj); -void pdf_array_push(pdf_obj *array, pdf_obj *obj); -void pdf_array_push_drop(pdf_obj *array, pdf_obj *obj); -void pdf_array_insert(pdf_obj *array, pdf_obj *obj); -int pdf_array_contains(pdf_obj *array, pdf_obj *obj); - -int pdf_dict_len(pdf_obj *dict); -pdf_obj *pdf_dict_get_key(pdf_obj *dict, int idx); -pdf_obj *pdf_dict_get_val(pdf_obj *dict, int idx); -pdf_obj *pdf_dict_get(pdf_obj *dict, pdf_obj *key); -pdf_obj *pdf_dict_gets(pdf_obj *dict, const char *key); -pdf_obj *pdf_dict_getp(pdf_obj *dict, const char *key); -pdf_obj *pdf_dict_getsa(pdf_obj *dict, const char *key, const char *abbrev); -void pdf_dict_put(pdf_obj *dict, pdf_obj *key, pdf_obj *val); -void pdf_dict_puts(pdf_obj *dict, const char *key, pdf_obj *val); -void pdf_dict_puts_drop(pdf_obj *dict, const char *key, pdf_obj *val); -void pdf_dict_putp(pdf_obj *dict, const char *key, pdf_obj *val); -void pdf_dict_putp_drop(pdf_obj *dict, const char *key, pdf_obj *val); -void pdf_dict_del(pdf_obj *dict, pdf_obj *key); -void pdf_dict_dels(pdf_obj *dict, const char *key); -void pdf_sort_dict(pdf_obj *dict); - -int pdf_fprint_obj(FILE *fp, pdf_obj *obj, int tight); - -#ifndef NDEBUG -void pdf_print_obj(pdf_obj *obj); -void pdf_print_ref(pdf_obj *obj); -#endif - -char *pdf_to_utf8(pdf_document *xref, pdf_obj *src); -unsigned short *pdf_to_ucs2(pdf_document *xref, pdf_obj *src); /* sumatrapdf */ -pdf_obj *pdf_to_utf8_name(pdf_document *xref, pdf_obj *src); -char *pdf_from_ucs2(pdf_document *xref, unsigned short *str); -void pdf_to_ucs2_buf(unsigned short *buffer, pdf_obj *src); - -fz_rect *pdf_to_rect(fz_context *ctx, pdf_obj *array, fz_rect *rect); -fz_matrix *pdf_to_matrix(fz_context *ctx, pdf_obj *array, fz_matrix *mat); - -int pdf_count_objects(pdf_document *doc); -pdf_obj *pdf_resolve_indirect(pdf_obj *ref); -pdf_obj *pdf_load_object(pdf_document *doc, int num, int gen); - -fz_buffer *pdf_load_raw_stream(pdf_document *doc, int num, int gen); -fz_buffer *pdf_load_stream(pdf_document *doc, int num, int gen); -fz_stream *pdf_open_raw_stream(pdf_document *doc, int num, int gen); -fz_stream *pdf_open_stream(pdf_document *doc, int num, int gen); - -fz_image *pdf_load_image(pdf_document *doc, pdf_obj *obj); - -fz_outline *pdf_load_outline(pdf_document *doc); - -/* - pdf_create_object: Allocate a slot in the xref table and return a fresh unused object number. -*/ -int pdf_create_object(pdf_document *xref); - -/* - pdf_delete_object: Remove object from xref table, marking the slot as free. -*/ -void pdf_delete_object(pdf_document *xref, int num); - -/* - pdf_update_object: Replace object in xref table with the passed in object. -*/ -void pdf_update_object(pdf_document *xref, int num, pdf_obj *obj); - -/* - pdf_update_stream: Replace stream contents for object in xref table with the passed in buffer. - - The buffer contents must match the /Filter setting. - If storing uncompressed data, make sure to delete the /Filter key from - the stream dictionary. If storing deflated data, make sure to set the - /Filter value to /FlateDecode. -*/ -void pdf_update_stream(pdf_document *xref, int num, fz_buffer *buf); - -/* - pdf_new_pdf_device: Create a pdf device. Rendering to the device creates - new pdf content. WARNING: this device is work in progress. It doesn't - currently support all rendering cases. -*/ -fz_device *pdf_new_pdf_device(pdf_document *doc, pdf_obj *contents, pdf_obj *resources, const fz_matrix *ctm); - -/* - pdf_write_document: Write out the document to a file with all changes finalised. -*/ -void pdf_write_document(pdf_document *doc, char *filename, fz_write_options *opts); - -/* - pdf_open_document: Open a PDF document. - - Open a PDF document by reading its cross reference table, so - MuPDF can locate PDF objects inside the file. Upon an broken - cross reference table or other parse errors MuPDF will restart - parsing the file from the beginning to try to rebuild a - (hopefully correct) cross reference table to allow further - processing of the file. - - The returned pdf_document should be used when calling most - other PDF functions. Note that it wraps the context, so those - functions implicitly get access to the global state in - context. - - filename: a path to a file as it would be given to open(2). -*/ -pdf_document *pdf_open_document(fz_context *ctx, const char *filename); - -/* - pdf_open_document_with_stream: Opens a PDF document. - - Same as pdf_open_document, but takes a stream instead of a - filename to locate the PDF document to open. Increments the - reference count of the stream. See fz_open_file, - fz_open_file_w or fz_open_fd for opening a stream, and - fz_close for closing an open stream. -*/ -pdf_document *pdf_open_document_with_stream(fz_context *ctx, fz_stream *file); - -/* - pdf_close_document: Closes and frees an opened PDF document. - - The resource store in the context associated with pdf_document - is emptied. - - Does not throw exceptions. -*/ -void pdf_close_document(pdf_document *doc); - -/* - pdf_specific: down-cast an fz_document to a pdf_document. - Returns NULL if underlying document is not PDF -*/ -pdf_document *pdf_specifics(fz_document *doc); - -int pdf_needs_password(pdf_document *doc); -int pdf_authenticate_password(pdf_document *doc, const char *pw); - -enum -{ - PDF_PERM_PRINT = 1 << 2, - PDF_PERM_CHANGE = 1 << 3, - PDF_PERM_COPY = 1 << 4, - PDF_PERM_NOTES = 1 << 5, - PDF_PERM_FILL_FORM = 1 << 8, - PDF_PERM_ACCESSIBILITY = 1 << 9, - PDF_PERM_ASSEMBLE = 1 << 10, - PDF_PERM_HIGH_RES_PRINT = 1 << 11, - PDF_DEFAULT_PERM_FLAGS = 0xfffc -}; - -int pdf_has_permission(pdf_document *doc, int p); - -typedef struct pdf_page_s pdf_page; - -int pdf_lookup_page_number(pdf_document *doc, pdf_obj *pageobj); -int pdf_count_pages(pdf_document *doc); - -/* - pdf_load_page: Load a page and its resources. - - Locates the page in the PDF document and loads the page and its - resources. After pdf_load_page is it possible to retrieve the size - of the page using pdf_bound_page, or to render the page using - pdf_run_page_*. - - number: page number, where 0 is the first page of the document. -*/ -pdf_page *pdf_load_page(pdf_document *doc, int number); - -fz_link *pdf_load_links(pdf_document *doc, pdf_page *page); - -/* - pdf_bound_page: Determine the size of a page. - - Determine the page size in user space units, taking page rotation - into account. The page size is taken to be the crop box if it - exists (visible area after cropping), otherwise the media box will - be used (possibly including printing marks). - - Does not throw exceptions. -*/ -fz_rect *pdf_bound_page(pdf_document *doc, pdf_page *page, fz_rect *); - -/* - pdf_free_page: Frees a page and its resources. - - Does not throw exceptions. -*/ -void pdf_free_page(pdf_document *doc, pdf_page *page); - -typedef struct pdf_annot_s pdf_annot; - -/* - pdf_first_annot: Return the first annotation on a page. - - Does not throw exceptions. -*/ -pdf_annot *pdf_first_annot(pdf_document *doc, pdf_page *page); - -/* - pdf_next_annot: Return the next annotation on a page. - - Does not throw exceptions. -*/ -pdf_annot *pdf_next_annot(pdf_document *doc, pdf_annot *annot); - -/* - pdf_bound_annot: Return the rectangle for an annotation on a page. - - Does not throw exceptions. -*/ -fz_rect *pdf_bound_annot(pdf_document *doc, pdf_annot *annot, fz_rect *rect); - -/* - pdf_annot_type: Return the type of an annotation -*/ -fz_annot_type pdf_annot_type(pdf_annot *annot); - -/* - pdf_run_page: Interpret a loaded page and render it on a device. - - page: A page loaded by pdf_load_page. - - dev: Device used for rendering, obtained from fz_new_*_device. - - ctm: A transformation matrix applied to the objects on the page, - e.g. to scale or rotate the page contents as desired. -*/ -void pdf_run_page(pdf_document *doc, pdf_page *page, fz_device *dev, const fz_matrix *ctm, fz_cookie *cookie); - -void pdf_run_page_with_usage(pdf_document *doc, pdf_page *page, fz_device *dev, const fz_matrix *ctm, char *event, fz_cookie *cookie); - -/* - pdf_run_page_contents: Interpret a loaded page and render it on a device. - Just the main page contents without the annotations - - page: A page loaded by pdf_load_page. - - dev: Device used for rendering, obtained from fz_new_*_device. - - ctm: A transformation matrix applied to the objects on the page, - e.g. to scale or rotate the page contents as desired. -*/ -void pdf_run_page_contents(pdf_document *xref, pdf_page *page, fz_device *dev, const fz_matrix *ctm, fz_cookie *cookie); - -/* - pdf_run_annot: Interpret an annotation and render it on a device. - - page: A page loaded by pdf_load_page. - - annot: an annotation. - - dev: Device used for rendering, obtained from fz_new_*_device. - - ctm: A transformation matrix applied to the objects on the page, - e.g. to scale or rotate the page contents as desired. -*/ -void pdf_run_annot(pdf_document *xref, pdf_page *page, pdf_annot *annot, fz_device *dev, const fz_matrix *ctm, fz_cookie *cookie); - -/* - Metadata interface. -*/ -int pdf_meta(pdf_document *doc, int key, void *ptr, int size); - -/* - Presentation interface. -*/ -fz_transition *pdf_page_presentation(pdf_document *doc, pdf_page *page, float *duration); - -#endif |