diff options
Diffstat (limited to 'platform')
-rw-r--r-- | platform/android/jni/mupdf.c | 44 | ||||
-rw-r--r-- | platform/android/src/com/artifex/mupdfdemo/MuPDFCore.java | 15 | ||||
-rw-r--r-- | platform/android/src/com/artifex/mupdfdemo/Separation.java | 15 |
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; + } +} |