summaryrefslogtreecommitdiff
path: root/source/tools/murun.c
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 /source/tools/murun.c
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 'source/tools/murun.c')
-rw-r--r--source/tools/murun.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/source/tools/murun.c b/source/tools/murun.c
index bed686a7..911fcf35 100644
--- a/source/tools/murun.c
+++ b/source/tools/murun.c
@@ -3261,6 +3261,28 @@ static void ffi_PDFDocument_addSimpleFont(js_State *J)
ffi_pushobj(J, ind);
}
+static void ffi_PDFDocument_addCJKFont(js_State *J)
+{
+ fz_context *ctx = js_getcontext(J);
+ pdf_document *pdf = js_touserdata(J, 0, "pdf_document");
+ fz_font *font = js_touserdata(J, 1, "fz_font");
+ const char *on = js_tostring(J, 2);
+ int ord = FZ_ADOBE_JAPAN_1;
+ pdf_obj *ind = NULL;
+
+ if (!strcmp(on, "CNS1") || !strcmp(on, "CN")) ord = FZ_ADOBE_CNS_1;
+ else if (!strcmp(on, "GB1") || !strcmp(on, "TW")) ord = FZ_ADOBE_GB_1;
+ else if (!strcmp(on, "Korea1") || !strcmp(on, "KR") || !strcmp(on, "KO")) ord = FZ_ADOBE_KOREA_1;
+ else if (!strcmp(on, "Japan1") || !strcmp(on, "JP") || !strcmp(on, "JA")) ord = FZ_ADOBE_JAPAN_1;
+
+ fz_try(ctx)
+ ind = pdf_add_cjk_font(ctx, pdf, font, ord);
+ fz_catch(ctx)
+ rethrow(J);
+
+ ffi_pushobj(J, ind);
+}
+
static void ffi_PDFDocument_addFont(js_State *J)
{
fz_context *ctx = js_getcontext(J);
@@ -4676,6 +4698,7 @@ int murun_main(int argc, char **argv)
jsB_propfun(J, "PDFDocument.addStream", ffi_PDFDocument_addStream, 2);
jsB_propfun(J, "PDFDocument.addRawStream", ffi_PDFDocument_addRawStream, 2);
jsB_propfun(J, "PDFDocument.addSimpleFont", ffi_PDFDocument_addSimpleFont, 1);
+ jsB_propfun(J, "PDFDocument.addCJKFont", ffi_PDFDocument_addCJKFont, 2);
jsB_propfun(J, "PDFDocument.addFont", ffi_PDFDocument_addFont, 1);
jsB_propfun(J, "PDFDocument.addImage", ffi_PDFDocument_addImage, 1);
jsB_propfun(J, "PDFDocument.addPage", ffi_PDFDocument_addPage, 4);