summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
Diffstat (limited to 'platform')
-rw-r--r--platform/java/example/Viewer.java10
-rw-r--r--platform/java/mupdf_native.c25
-rw-r--r--platform/java/mupdf_native.h8
-rw-r--r--platform/java/src/com/artifex/mupdf/fitz/Document.java2
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);