summaryrefslogtreecommitdiff
path: root/platform/android
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android')
-rw-r--r--platform/android/jni/mupdf.c44
-rw-r--r--platform/android/src/com/artifex/mupdfdemo/MuPDFCore.java15
-rw-r--r--platform/android/src/com/artifex/mupdfdemo/Separation.java15
3 files changed, 74 insertions, 0 deletions
diff --git a/platform/android/jni/mupdf.c b/platform/android/jni/mupdf.c
index a9484866..6abb805f 100644
--- a/platform/android/jni/mupdf.c
+++ b/platform/android/jni/mupdf.c
@@ -2789,3 +2789,47 @@ JNI_FN(MuPDFCore_gprfSupportedInternal)(JNIEnv * env)
return JNI_FALSE;
#endif
}
+
+JNIEXPORT int JNICALL
+JNI_FN(MuPDFCore_getNumSepsOnPageInternal)(JNIEnv *env, jobject thiz)
+{
+ globals *glo = get_globals(env, thiz);
+ fz_context *ctx = glo->ctx;
+
+ return fz_count_separations_on_page(ctx, glo->pages[glo->current].page);
+}
+
+JNIEXPORT void JNICALL
+JNI_FN(MuPDFCore_controlSepOnPageInternal)(JNIEnv *env, jobject thiz, int sep, jboolean disable)
+{
+ globals *glo = get_globals(env, thiz);
+ fz_context *ctx = glo->ctx;
+
+ fz_control_separation_on_page(ctx, glo->pages[glo->current].page, sep, disable);
+}
+
+JNIEXPORT jobject JNICALL
+JNI_FN(MuPDFCore_getSepInternal)(JNIEnv *env, jobject thiz, int sep)
+{
+ globals *glo = get_globals(env, thiz);
+ fz_context *ctx = glo->ctx;
+ const char *name;
+ unsigned int rgb;
+ unsigned int cmyk;
+ jobject jname;
+ jclass sepClass;
+ jmethodID ctor;
+
+ name = fz_get_separation_on_page(ctx, glo->pages[glo->current].page, sep, &rgb, &cmyk);
+ jname = name ? (*env)->NewStringUTF(env, name) : NULL;
+
+ sepClass = (*env)->FindClass(env, PACKAGENAME "/Separation");
+ if (sepClass == NULL)
+ return NULL;
+
+ ctor = (*env)->GetMethodID(env, sepClass, "<init>", "(Ljava/lang/String;II)V");
+ if (ctor == NULL)
+ return NULL;
+
+ return (*env)->NewObject(env, sepClass, ctor, jname, rgb, cmyk);
+}
diff --git a/platform/android/src/com/artifex/mupdfdemo/MuPDFCore.java b/platform/android/src/com/artifex/mupdfdemo/MuPDFCore.java
index 5c8697fb..29e443c0 100644
--- a/platform/android/src/com/artifex/mupdfdemo/MuPDFCore.java
+++ b/platform/android/src/com/artifex/mupdfdemo/MuPDFCore.java
@@ -92,6 +92,9 @@ public class MuPDFCore
private native void abortCookie(long cookie);
private native String startProofInternal();
private native void endProofInternal(String filename);
+ private native int getNumSepsOnPageInternal();
+ private native int controlSepOnPageInternal(int sep, boolean disable);
+ private native Separation getSepInternal(int sep);
public native boolean javascriptSupported();
@@ -375,4 +378,16 @@ public class MuPDFCore
return false;
return gprfSupportedInternal();
}
+
+ public synchronized int getNumSepsOnPage() {
+ return getNumSepsOnPageInternal();
+ }
+
+ public synchronized int controlSepOnPage(int sep, boolean disable) {
+ return controlSepOnPageInternal(sep, disable);
+ }
+
+ public synchronized Separation getSep(int sep) {
+ return getSepInternal(sep);
+ }
}
diff --git a/platform/android/src/com/artifex/mupdfdemo/Separation.java b/platform/android/src/com/artifex/mupdfdemo/Separation.java
new file mode 100644
index 00000000..eadda4ba
--- /dev/null
+++ b/platform/android/src/com/artifex/mupdfdemo/Separation.java
@@ -0,0 +1,15 @@
+package com.artifex.mupdfdemo;
+
+public class Separation
+{
+ String name;
+ int rgba;
+ int cmyk;
+
+ public Separation(String name, int rgba, int cmyk)
+ {
+ this.name = name;
+ this.rgba = rgba;
+ this.cmyk = cmyk;
+ }
+}