summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-11-16 13:45:52 +0100
committerTor Andersson <tor.andersson@artifex.com>2016-11-16 16:09:32 +0100
commit207b2a0fa3943bfb8d8c35e4202d2ef10e782bcb (patch)
treeb24c1f5464eb37bc218fa8d3af5634bbb24a8b1e
parent0c3e1ee387c995f37aa53f358825f334c06324ec (diff)
downloadmupdf-207b2a0fa3943bfb8d8c35e4202d2ef10e782bcb.tar.xz
pdf: Add x and y output parameters to pdf_lookup_anchor.
-rw-r--r--include/mupdf/pdf/page.h4
-rw-r--r--source/pdf/pdf-page.c7
2 files changed, 7 insertions, 4 deletions
diff --git a/include/mupdf/pdf/page.h b/include/mupdf/pdf/page.h
index bae9193f..f09e9260 100644
--- a/include/mupdf/pdf/page.h
+++ b/include/mupdf/pdf/page.h
@@ -9,9 +9,9 @@ pdf_obj *pdf_lookup_page_obj(fz_context *ctx, pdf_document *doc, int needle);
pdf_lookup_anchor: Find the page number of a named destination.
For use with looking up the destination page of a fragment
- identifier in hyperlinks: foo.pdf#bar.
+ identifier in hyperlinks: foo.pdf#bar or foo.pdf#page=5.
*/
-int pdf_lookup_anchor(fz_context *ctx, pdf_document *doc, const char *name);
+int pdf_lookup_anchor(fz_context *ctx, pdf_document *doc, const char *name, float *xp, float *yp);
/*
pdf_flatten_inheritable_page_items: Make page self sufficient.
diff --git a/source/pdf/pdf-page.c b/source/pdf/pdf-page.c
index 8335614a..64b30cf6 100644
--- a/source/pdf/pdf-page.c
+++ b/source/pdf/pdf-page.c
@@ -201,11 +201,14 @@ pdf_lookup_page_number(fz_context *ctx, pdf_document *doc, pdf_obj *node)
}
int
-pdf_lookup_anchor(fz_context *ctx, pdf_document *doc, const char *name)
+pdf_lookup_anchor(fz_context *ctx, pdf_document *doc, const char *name, float *xp, float *yp)
{
pdf_obj *needle, *dest;
char *uri;
+ if (xp) *xp = 0;
+ if (yp) *yp = 0;
+
needle = pdf_new_string(ctx, doc, name, strlen(name));
fz_try(ctx)
dest = pdf_lookup_dest(ctx, doc, needle);
@@ -217,7 +220,7 @@ pdf_lookup_anchor(fz_context *ctx, pdf_document *doc, const char *name)
if (dest)
{
uri = pdf_parse_link_dest(ctx, doc, dest);
- return pdf_resolve_link(ctx, doc, uri, NULL, NULL);
+ return pdf_resolve_link(ctx, doc, uri, xp, yp);
}
if (!strncmp(name, "page=", 5))