summaryrefslogtreecommitdiff
path: root/include/mupdf/fitz/document.h
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2017-02-02 15:55:40 +0100
committerTor Andersson <tor.andersson@artifex.com>2017-02-06 17:10:40 +0100
commitc100c4c77a88782ba5c4634994171db611952d44 (patch)
tree5dc9e03790f4eebd0586ed21510465ad8f831a85 /include/mupdf/fitz/document.h
parent931f3d9a6c3ab0fbfa3e365fe040e1b86c47e9fc (diff)
downloadmupdf-c100c4c77a88782ba5c4634994171db611952d44.tar.xz
Add bookmarks so we can find a location after reflowing a document.
Diffstat (limited to 'include/mupdf/fitz/document.h')
-rw-r--r--include/mupdf/fitz/document.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/mupdf/fitz/document.h b/include/mupdf/fitz/document.h
index d7dbd447..c66dc2ca 100644
--- a/include/mupdf/fitz/document.h
+++ b/include/mupdf/fitz/document.h
@@ -16,6 +16,7 @@ typedef struct fz_document_s fz_document;
typedef struct fz_document_handler_s fz_document_handler;
typedef struct fz_page_s fz_page;
typedef struct fz_annot_s fz_annot;
+typedef intptr_t fz_bookmark;
typedef enum
{
@@ -36,6 +37,8 @@ typedef int (fz_document_resolve_link_fn)(fz_context *ctx, fz_document *doc, con
typedef int (fz_document_count_pages_fn)(fz_context *ctx, fz_document *doc);
typedef fz_page *(fz_document_load_page_fn)(fz_context *ctx, fz_document *doc, int number);
typedef int (fz_document_lookup_metadata_fn)(fz_context *ctx, fz_document *doc, const char *key, char *buf, int size);
+typedef fz_bookmark (fz_document_make_bookmark_fn)(fz_context *ctx, fz_document *doc, int page);
+typedef int (fz_document_lookup_bookmark_fn)(fz_context *ctx, fz_document *doc, fz_bookmark mark);
typedef fz_link *(fz_page_load_links_fn)(fz_context *ctx, fz_page *page);
typedef fz_rect *(fz_page_bound_page_fn)(fz_context *ctx, fz_page *page, fz_rect *);
@@ -100,6 +103,8 @@ struct fz_document_s
fz_document_has_permission_fn *has_permission;
fz_document_load_outline_fn *load_outline;
fz_document_layout_fn *layout;
+ fz_document_make_bookmark_fn *make_bookmark;
+ fz_document_lookup_bookmark_fn *lookup_bookmark;
fz_document_resolve_link_fn *resolve_link;
fz_document_count_pages_fn *count_pages;
fz_document_load_page_fn *load_page;
@@ -217,6 +222,18 @@ int fz_is_document_reflowable(fz_context *ctx, fz_document *doc);
void fz_layout_document(fz_context *ctx, fz_document *doc, float w, float h, float em);
/*
+ Create a bookmark for the given page, which can be used to find the
+ same location after the document has been laid out with different
+ parameters.
+*/
+fz_bookmark fz_make_bookmark(fz_context *ctx, fz_document *doc, int page);
+
+/*
+ Find a bookmark and return its page number.
+*/
+int fz_lookup_bookmark(fz_context *ctx, fz_document *doc, fz_bookmark mark);
+
+/*
fz_count_pages: Return the number of pages in document
May return 0 for documents with no pages.