diff options
author | Sebastian Rasmussen <sebras@gmail.com> | 2017-01-19 02:20:26 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2017-04-13 14:13:31 +0200 |
commit | 241d200228e3b7cf3d5300626158833516b90a94 (patch) | |
tree | e926fd685f48888fc632b4ac83b8e904f129804e /platform | |
parent | 0cd7f2e8397e2caf47f3d46ef635358fa0ba194c (diff) | |
download | mupdf-241d200228e3b7cf3d5300626158833516b90a94.tar.xz |
Export fz_recognize_document and use it in java code.
Diffstat (limited to 'platform')
-rw-r--r-- | platform/java/example/Viewer.java | 10 | ||||
-rw-r--r-- | platform/java/mupdf_native.c | 25 | ||||
-rw-r--r-- | platform/java/mupdf_native.h | 8 | ||||
-rw-r--r-- | platform/java/src/com/artifex/mupdf/fitz/Document.java | 2 |
4 files changed, 36 insertions, 9 deletions
diff --git a/platform/java/example/Viewer.java b/platform/java/example/Viewer.java index e5c45be4..a559c218 100644 --- a/platform/java/example/Viewer.java +++ b/platform/java/example/Viewer.java @@ -431,15 +431,7 @@ public class Viewer extends Frame implements WindowListener, ActionListener, Ite fileDialog.setDirectory(System.getProperty("user.dir")); fileDialog.setFilenameFilter(new FilenameFilter() { public boolean accept(File dir, String name) { - if (name.endsWith(".pdf")) return true; - if (name.endsWith(".xps")) return true; - if (name.endsWith(".oxps")) return true; - if (name.endsWith(".cbt")) return true; - if (name.endsWith(".cbz")) return true; - if (name.endsWith(".epub")) return true; - if (name.endsWith(".fb2")) return true; - if (name.endsWith(".xhtml")) return true; - return false; + return Document.recognize(name); } }); fileDialog.setVisible(true); diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c index c45afcd9..daac2579 100644 --- a/platform/java/mupdf_native.c +++ b/platform/java/mupdf_native.c @@ -4210,6 +4210,31 @@ FUN(Document_openNativeWithPath)(JNIEnv *env, jclass cls, jstring jfilename) } JNIEXPORT jboolean JNICALL +FUN(Document_recognize)(JNIEnv *env, jclass self, jstring jmagic) +{ + fz_context *ctx = get_context(env); + const char *magic = NULL; + jboolean recognized; + + if (!ctx) return JNI_FALSE; + if (jmagic) + { + magic = (*env)->GetStringUTFChars(env, jmagic, NULL); + if (!magic) return JNI_FALSE; + } + + fz_try(ctx) + recognized = fz_recognize_document(ctx, magic) != NULL; + fz_always(ctx) + if (magic) + (*env)->ReleaseStringUTFChars(env, jmagic, magic); + fz_catch(ctx) + jni_rethrow(env, ctx); + + return recognized; +} + +JNIEXPORT jboolean JNICALL FUN(Document_needsPassword)(JNIEnv *env, jobject self) { fz_context *ctx = get_context(env); diff --git a/platform/java/mupdf_native.h b/platform/java/mupdf_native.h index acfaf1d1..4a9c7dc0 100644 --- a/platform/java/mupdf_native.h +++ b/platform/java/mupdf_native.h @@ -619,6 +619,14 @@ JNIEXPORT jobject JNICALL Java_com_artifex_mupdf_fitz_Document_openNativeWithBuf /* * Class: com_artifex_mupdf_fitz_Document + * Method: recognize + * Signature: (Ljava/lang/String;)Z + */ +JNIEXPORT jboolean JNICALL Java_com_artifex_mupdf_fitz_Document_recognize + (JNIEnv *, jclass, jstring); + +/* + * Class: com_artifex_mupdf_fitz_Document * Method: needsPassword * Signature: ()Z */ diff --git a/platform/java/src/com/artifex/mupdf/fitz/Document.java b/platform/java/src/com/artifex/mupdf/fitz/Document.java index 52010a02..9b512c89 100644 --- a/platform/java/src/com/artifex/mupdf/fitz/Document.java +++ b/platform/java/src/com/artifex/mupdf/fitz/Document.java @@ -38,6 +38,8 @@ public class Document return openNativeWithBuffer(buffer, magic); } + public static native boolean recognize(String magic); + public native boolean needsPassword(); public native boolean authenticatePassword(String password); |