summaryrefslogtreecommitdiff
path: root/source/tools/pdfcreate.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-03-15 11:55:06 +0100
committerTor Andersson <tor.andersson@artifex.com>2018-03-16 14:51:41 +0100
commit1cd2046b3cce264a3d13481652868fd1c31537fc (patch)
tree8ba181113cc22f2ffe4ba1a3ed549926b747bc8c /source/tools/pdfcreate.c
parent2612c20b725319833caeef36ccf4240f34e0e24b (diff)
downloadmupdf-1cd2046b3cce264a3d13481652868fd1c31537fc.tar.xz
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 <fa c4 d2 c1 d7 d3 d4 d7 d5 ca d4 c5 21> Tj ET The alternatives are "Latin", "Greek", and "Cyrillic".
Diffstat (limited to 'source/tools/pdfcreate.c')
-rw-r--r--source/tools/pdfcreate.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/source/tools/pdfcreate.c b/source/tools/pdfcreate.c
index 93dff5fb..032f32d5 100644
--- a/source/tools/pdfcreate.c
+++ b/source/tools/pdfcreate.c
@@ -32,10 +32,10 @@ static void usage(void)
static fz_context *ctx = NULL;
static pdf_document *doc = NULL;
-static void add_font_res(pdf_obj *resources, char *name, char *path)
+static void add_font_res(pdf_obj *resources, char *name, char *path, char *encname)
{
const unsigned char *data;
- int size;
+ int size, enc;
fz_font *font;
pdf_obj *subres, *ref;
@@ -52,7 +52,15 @@ static void add_font_res(pdf_obj *resources, char *name, char *path)
pdf_dict_put_drop(ctx, resources, PDF_NAME_Font, subres);
}
- ref = pdf_add_simple_font(ctx, doc, font);
+ enc = PDF_SIMPLE_ENCODING_LATIN;
+ if (encname)
+ {
+ if (!strcmp(encname, "Latin")) enc = PDF_SIMPLE_ENCODING_LATIN;
+ else if (!strcmp(encname, "Greek")) enc = PDF_SIMPLE_ENCODING_GREEK;
+ else if (!strcmp(encname, "Cyrillic")) enc = PDF_SIMPLE_ENCODING_CYRILLIC;
+ }
+
+ ref = pdf_add_simple_font(ctx, doc, font, enc);
pdf_dict_puts(ctx, subres, name, ref);
pdf_drop_obj(ctx, ref);
@@ -125,7 +133,7 @@ static void create_page(char *input)
int rotate = 0;
char line[4096];
- char *s, *p;
+ char *s, *t, *p;
fz_stream *stm;
fz_buffer *contents;
@@ -156,7 +164,8 @@ static void create_page(char *input)
else if (!strcmp(s, "%%Font"))
{
s = fz_strsep(&p, " ");
- add_font_res(resources, s, p);
+ t = fz_strsep(&p, " ");
+ add_font_res(resources, s, t, p);
}
else if (!strcmp(s, "%%CJKFont"))
{