summaryrefslogtreecommitdiff
path: root/platform/java
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-03-14 17:52:17 +0100
committerTor Andersson <tor.andersson@artifex.com>2018-03-16 14:51:41 +0100
commit2612c20b725319833caeef36ccf4240f34e0e24b (patch)
treeeb58090f9a78187690bc5197b11284576a50b8c3 /platform/java
parent5a2b234c8e93a2c3acdb21e79da684dbcfe677c7 (diff)
downloadmupdf-2612c20b725319833caeef36ccf4240f34e0e24b.tar.xz
Add simple CJK font creation.
Create a non-embedded CJK font using UTF-16 encoding. This can be used in mutool create like so: %%CJKFont Ming GB1 BT /Ming 10 Tf 100 100 Td <4F60 597D> Tj ET
Diffstat (limited to 'platform/java')
-rw-r--r--platform/java/mupdf_native.c22
-rw-r--r--platform/java/mupdf_native.h16
-rw-r--r--platform/java/src/com/artifex/mupdf/fitz/Font.java5
-rw-r--r--platform/java/src/com/artifex/mupdf/fitz/PDFDocument.java1
4 files changed, 44 insertions, 0 deletions
diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c
index 7235d50e..31f76d7b 100644
--- a/platform/java/mupdf_native.c
+++ b/platform/java/mupdf_native.c
@@ -7054,6 +7054,28 @@ FUN(PDFDocument_addFont)(JNIEnv *env, jobject self, jobject jfont)
}
JNIEXPORT jobject JNICALL
+FUN(PDFDocument_addCJKFont)(JNIEnv *env, jobject self, jobject jfont, jint ordering)
+{
+ fz_context *ctx = get_context(env);
+ pdf_document *pdf = from_PDFDocument(env, self);
+ fz_font *font = from_Font(env, jfont);
+ pdf_obj *ind = NULL;
+
+ if (!ctx || !pdf) return NULL;
+ if (!font) { jni_throw_arg(env, "font must not be null"); return NULL; }
+
+ fz_try(ctx)
+ ind = pdf_add_cjk_font(ctx, pdf, font, ordering);
+ fz_catch(ctx)
+ {
+ jni_rethrow(env, ctx);
+ return NULL;
+ }
+
+ return to_PDFObject_safe_own(ctx, env, self, ind);
+}
+
+JNIEXPORT jobject JNICALL
FUN(PDFDocument_addSimpleFont)(JNIEnv *env, jobject self, jobject jfont)
{
fz_context *ctx = get_context(env);
diff --git a/platform/java/mupdf_native.h b/platform/java/mupdf_native.h
index 8bfe3480..42d54345 100644
--- a/platform/java/mupdf_native.h
+++ b/platform/java/mupdf_native.h
@@ -889,6 +889,14 @@ extern "C" {
#ifdef __cplusplus
extern "C" {
#endif
+#undef com_artifex_mupdf_fitz_Font_CN
+#define com_artifex_mupdf_fitz_Font_CN 0L
+#undef com_artifex_mupdf_fitz_Font_TW
+#define com_artifex_mupdf_fitz_Font_TW 1L
+#undef com_artifex_mupdf_fitz_Font_JP
+#define com_artifex_mupdf_fitz_Font_JP 2L
+#undef com_artifex_mupdf_fitz_Font_KR
+#define com_artifex_mupdf_fitz_Font_KR 3L
/*
* Class: com_artifex_mupdf_fitz_Font
* Method: finalize
@@ -1904,6 +1912,14 @@ JNIEXPORT jobject JNICALL Java_com_artifex_mupdf_fitz_PDFDocument_addSimpleFont
/*
* Class: com_artifex_mupdf_fitz_PDFDocument
+ * Method: addCJKFont
+ * Signature: (Lcom/artifex/mupdf/fitz/Font;I)Lcom/artifex/mupdf/fitz/PDFObject;
+ */
+JNIEXPORT jobject JNICALL Java_com_artifex_mupdf_fitz_PDFDocument_addCJKFont
+ (JNIEnv *, jobject, jobject, jint);
+
+/*
+ * Class: com_artifex_mupdf_fitz_PDFDocument
* Method: addFont
* Signature: (Lcom/artifex/mupdf/fitz/Font;)Lcom/artifex/mupdf/fitz/PDFObject;
*/
diff --git a/platform/java/src/com/artifex/mupdf/fitz/Font.java b/platform/java/src/com/artifex/mupdf/fitz/Font.java
index 9eb6f61a..2910d543 100644
--- a/platform/java/src/com/artifex/mupdf/fitz/Font.java
+++ b/platform/java/src/com/artifex/mupdf/fitz/Font.java
@@ -6,6 +6,11 @@ public class Font
Context.init();
}
+ public static final int CN = 0;
+ public static final int TW = 1;
+ public static final int JP = 2;
+ public static final int KR = 3;
+
private long pointer;
protected native void finalize();
diff --git a/platform/java/src/com/artifex/mupdf/fitz/PDFDocument.java b/platform/java/src/com/artifex/mupdf/fitz/PDFDocument.java
index 945294f3..b650df52 100644
--- a/platform/java/src/com/artifex/mupdf/fitz/PDFDocument.java
+++ b/platform/java/src/com/artifex/mupdf/fitz/PDFDocument.java
@@ -97,6 +97,7 @@ public class PDFDocument extends Document
public native void deletePage(int at);
public native PDFObject addImage(Image image);
public native PDFObject addSimpleFont(Font font);
+ public native PDFObject addCJKFont(Font font, int ordering);
public native PDFObject addFont(Font font);
public native boolean hasUnsavedChanges();
public native boolean canBeSavedIncrementally();