From 1cd2046b3cce264a3d13481652868fd1c31537fc Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Thu, 15 Mar 2018 11:55:06 +0100 Subject: Add simple fonts with 8-bit greek and cyrillic encodings. Use KOI8-U for Cyrillic, and ISO 8859-7 for Greek. Use with 'mutool create' using an extra argument to the %%Font directive: %%Font TmRmC Times-Roman Cyrillic BT /TmRmC 16 Tf 10 10 Td Tj ET The alternatives are "Latin", "Greek", and "Cyrillic". --- platform/java/mupdf_native.c | 4 ++-- platform/java/mupdf_native.h | 10 ++++++++-- platform/java/src/com/artifex/mupdf/fitz/Font.java | 4 ++++ platform/java/src/com/artifex/mupdf/fitz/PDFDocument.java | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) (limited to 'platform/java') diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c index 31f76d7b..754d31a2 100644 --- a/platform/java/mupdf_native.c +++ b/platform/java/mupdf_native.c @@ -7076,7 +7076,7 @@ FUN(PDFDocument_addCJKFont)(JNIEnv *env, jobject self, jobject jfont, jint order } JNIEXPORT jobject JNICALL -FUN(PDFDocument_addSimpleFont)(JNIEnv *env, jobject self, jobject jfont) +FUN(PDFDocument_addSimpleFont)(JNIEnv *env, jobject self, jobject jfont, jint encoding) { fz_context *ctx = get_context(env); pdf_document *pdf = from_PDFDocument(env, self); @@ -7087,7 +7087,7 @@ FUN(PDFDocument_addSimpleFont)(JNIEnv *env, jobject self, jobject jfont) if (!font) { jni_throw_arg(env, "font must not be null"); return NULL; } fz_try(ctx) - ind = pdf_add_simple_font(ctx, pdf, font); + ind = pdf_add_simple_font(ctx, pdf, font, encoding); fz_catch(ctx) { jni_rethrow(env, ctx); diff --git a/platform/java/mupdf_native.h b/platform/java/mupdf_native.h index 42d54345..36807a0a 100644 --- a/platform/java/mupdf_native.h +++ b/platform/java/mupdf_native.h @@ -889,6 +889,12 @@ extern "C" { #ifdef __cplusplus extern "C" { #endif +#undef com_artifex_mupdf_fitz_Font_LATIN +#define com_artifex_mupdf_fitz_Font_LATIN 0L +#undef com_artifex_mupdf_fitz_Font_GREEK +#define com_artifex_mupdf_fitz_Font_GREEK 1L +#undef com_artifex_mupdf_fitz_Font_CYRILLIC +#define com_artifex_mupdf_fitz_Font_CYRILLIC 2L #undef com_artifex_mupdf_fitz_Font_CN #define com_artifex_mupdf_fitz_Font_CN 0L #undef com_artifex_mupdf_fitz_Font_TW @@ -1905,10 +1911,10 @@ JNIEXPORT jobject JNICALL Java_com_artifex_mupdf_fitz_PDFDocument_addImage /* * Class: com_artifex_mupdf_fitz_PDFDocument * Method: addSimpleFont - * Signature: (Lcom/artifex/mupdf/fitz/Font;)Lcom/artifex/mupdf/fitz/PDFObject; + * Signature: (Lcom/artifex/mupdf/fitz/Font;I)Lcom/artifex/mupdf/fitz/PDFObject; */ JNIEXPORT jobject JNICALL Java_com_artifex_mupdf_fitz_PDFDocument_addSimpleFont - (JNIEnv *, jobject, jobject); + (JNIEnv *, jobject, jobject, jint); /* * Class: com_artifex_mupdf_fitz_PDFDocument diff --git a/platform/java/src/com/artifex/mupdf/fitz/Font.java b/platform/java/src/com/artifex/mupdf/fitz/Font.java index 2910d543..f6ac2ce7 100644 --- a/platform/java/src/com/artifex/mupdf/fitz/Font.java +++ b/platform/java/src/com/artifex/mupdf/fitz/Font.java @@ -6,6 +6,10 @@ public class Font Context.init(); } + public static final int LATIN = 0; + public static final int GREEK = 1; + public static final int CYRILLIC = 2; + public static final int CN = 0; public static final int TW = 1; public static final int JP = 2; diff --git a/platform/java/src/com/artifex/mupdf/fitz/PDFDocument.java b/platform/java/src/com/artifex/mupdf/fitz/PDFDocument.java index b650df52..211b6ab1 100644 --- a/platform/java/src/com/artifex/mupdf/fitz/PDFDocument.java +++ b/platform/java/src/com/artifex/mupdf/fitz/PDFDocument.java @@ -96,7 +96,7 @@ public class PDFDocument extends Document public native void insertPage(int at, PDFObject page); public native void deletePage(int at); public native PDFObject addImage(Image image); - public native PDFObject addSimpleFont(Font font); + public native PDFObject addSimpleFont(Font font, int encoding); public native PDFObject addCJKFont(Font font, int ordering); public native PDFObject addFont(Font font); public native boolean hasUnsavedChanges(); -- cgit v1.2.3