[gs-commits] mupdf/android-muso-signing 1.16.1.12 Add target page coor
[email protected] (Fred Ross-Perry) Tue, 10 Dec 2019 23:20:44 +0000 (UTC)
| Newsgroups | gmane.comp.printing.ghostscript.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit 3ec3c24592aa3674cd3a4726a1dec9f7e85f80a8 Author: Fred Ross-Perry <[email protected]> Date: Tue Dec 10 15:18:34 2019 -0800 Add target page coordinates to the Link object. These are needed by Java clients when the link is internal. diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c index 2733181..3e0db41 100644 --- a/platform/java/mupdf_native.c +++ b/platform/java/mupdf_native.c @@ -623,7 +623,7 @@ static int find_fids(JNIEnv *env) fid_Link_bounds = get_field(&err, env, "bounds", "L"PKG"Rect;"); fid_Link_page = get_field(&err, env, "page", "I"); fid_Link_uri = get_field(&err, env, "uri", "Ljava/lang/String;"); - mid_Link_init = get_method(&err, env, "<init>", "(L"PKG"Rect;ILjava/lang/String;)V"); + mid_Link_init = get_method(&err, env, "<init>", "(L"PKG"Rect;ILjava/lang/String;FF)V"); cls_Matrix = get_class(&err, env, PKG"Matrix"); fid_Matrix_a = get_field(&err, env, "a", "F"); @@ -5814,15 +5814,20 @@ FUN(Page_getLinks)(JNIEnv *env, jobject self) jbounds = to_Rect_safe(ctx, env, link->rect); if (!jbounds) return NULL; + float x = 0; + float y = 0; if (fz_is_external_link(ctx, link->uri)) { juri = (*env)->NewStringUTF(env, link->uri); if (!juri) return NULL; } else - page = fz_resolve_link(ctx, link->doc, link->uri, NULL, NULL); + // resolve the link and get the page coordinates + page = fz_resolve_link(ctx, link->doc, link->uri, &x, &y); + + // put the page coordinates in the link + jlink = (*env)->NewObject(env, cls_Link, mid_Link_init, jbounds, page, juri, x, y); - jlink = (*env)->NewObject(env, cls_Link, mid_Link_init, jbounds, page, juri); (*env)->DeleteLocalRef(env, jbounds); if (!jlink) return NULL; if (juri) diff --git a/platform/java/src/com/artifex/mupdf/fitz/Link.java b/platform/java/src/com/artifex/mupdf/fitz/Link.java index 1f7eddb..c2ffc90 100644 --- a/platform/java/src/com/artifex/mupdf/fitz/Link.java +++ b/platform/java/src/com/artifex/mupdf/fitz/Link.java @@ -6,13 +6,19 @@ public class Link public int page; public String uri; - public Link(Rect bounds, int page, String uri) { + // for internal links, the page coordinates + public float x; + public float y; + + public Link(Rect bounds, int page, String uri, float x, float y) { this.bounds = bounds; this.page = page; this.uri = uri; + this.x = x; + this.y = y; } public String toString() { - return "Link(b="+bounds+",page="+page+",uri="+uri+")"; + return "Link(b="+bounds+",page="+page+",uri="+uri+",x="+x+",y="+y+")"; } } http://git.ghostscript.com/?p=mupdf.git;a=commit;h=3ec3c24592aa3674cd3a4726a1dec9f7e85f80a8 -- MuPDF library Artifex Software, Inc.