diff options
Diffstat (limited to 'source/tools/murun.c')
-rw-r--r-- | source/tools/murun.c | 23 |
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); |