diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-01-27 15:25:23 +0100 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2016-01-28 20:09:53 +0000 |
commit | 89559a410d5e79e0922128f90171935c6d55341a (patch) | |
tree | be969b16cb8af1a01134adc32ccbfc924a391991 /source/pdf/pdf-fontfile.c | |
parent | dadef8ae9ca208d4c02516fd8e73606fd1e7863c (diff) | |
download | mupdf-89559a410d5e79e0922128f90171935c6d55341a.tar.xz |
Add Noto fallback fonts.
Look up fallback fonts by unicode script, with a flag to select the serif or
sans-serif font style where such variants exist.
Move all builtin fonts into fitz namespace.
Diffstat (limited to 'source/pdf/pdf-fontfile.c')
-rw-r--r-- | source/pdf/pdf-fontfile.c | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/source/pdf/pdf-fontfile.c b/source/pdf/pdf-fontfile.c deleted file mode 100644 index 86b6682b..00000000 --- a/source/pdf/pdf-fontfile.c +++ /dev/null @@ -1,138 +0,0 @@ -#include "mupdf/pdf.h" - -/* - Which fonts are embedded is based on a few preprocessor definitions. - - The base 14 fonts are always embedded. - For CJK font substitution we embed DroidSansFallback. - - Set NOCJK to skip all CJK support (this also omits embedding the CJK CMaps) - Set NOCJKFONT to skip the embedded CJK font. - Set NOCJKFULL to embed a smaller CJK font without CJK Extension A support. -*/ - -#ifdef NOCJK -#define NOCJKFONT -#endif - -#include "gen_font_base14.h" - -#ifndef NOCJKFONT -#ifndef NOCJKFULL -#include "gen_font_cjk_full.h" -#else -#include "gen_font_cjk.h" -#endif -#endif - -unsigned char * -pdf_lookup_builtin_font(fz_context *ctx, const char *name, unsigned int *len) -{ - if (!strcmp("Courier", name)) { - *len = sizeof pdf_font_NimbusMono_Regular; - return (unsigned char*) pdf_font_NimbusMono_Regular; - } - if (!strcmp("Courier-Bold", name)) { - *len = sizeof pdf_font_NimbusMono_Bold; - return (unsigned char*) pdf_font_NimbusMono_Bold; - } - if (!strcmp("Courier-Oblique", name)) { - *len = sizeof pdf_font_NimbusMono_Oblique; - return (unsigned char*) pdf_font_NimbusMono_Oblique; - } - if (!strcmp("Courier-BoldOblique", name)) { - *len = sizeof pdf_font_NimbusMono_BoldOblique; - return (unsigned char*) pdf_font_NimbusMono_BoldOblique; - } - if (!strcmp("Helvetica", name)) { - *len = sizeof pdf_font_NimbusSanL_Reg; - return (unsigned char*) pdf_font_NimbusSanL_Reg; - } - if (!strcmp("Helvetica-Bold", name)) { - *len = sizeof pdf_font_NimbusSanL_Bol; - return (unsigned char*) pdf_font_NimbusSanL_Bol; - } - if (!strcmp("Helvetica-Oblique", name)) { - *len = sizeof pdf_font_NimbusSanL_RegIta; - return (unsigned char*) pdf_font_NimbusSanL_RegIta; - } - if (!strcmp("Helvetica-BoldOblique", name)) { - *len = sizeof pdf_font_NimbusSanL_BolIta; - return (unsigned char*) pdf_font_NimbusSanL_BolIta; - } - if (!strcmp("Times-Roman", name)) { - *len = sizeof pdf_font_NimbusRomNo9L_Reg; - return (unsigned char*) pdf_font_NimbusRomNo9L_Reg; - } - if (!strcmp("Times-Bold", name)) { - *len = sizeof pdf_font_NimbusRomNo9L_Med; - return (unsigned char*) pdf_font_NimbusRomNo9L_Med; - } - if (!strcmp("Times-Italic", name)) { - *len = sizeof pdf_font_NimbusRomNo9L_RegIta; - return (unsigned char*) pdf_font_NimbusRomNo9L_RegIta; - } - if (!strcmp("Times-BoldItalic", name)) { - *len = sizeof pdf_font_NimbusRomNo9L_MedIta; - return (unsigned char*) pdf_font_NimbusRomNo9L_MedIta; - } - if (!strcmp("Symbol", name)) { - *len = sizeof pdf_font_StandardSymL; - return (unsigned char*) pdf_font_StandardSymL; - } - if (!strcmp("ZapfDingbats", name)) { - *len = sizeof pdf_font_Dingbats; - return (unsigned char*) pdf_font_Dingbats; - } - *len = 0; - return NULL; -} - -unsigned char * -pdf_lookup_substitute_font(fz_context *ctx, int mono, int serif, int bold, int italic, unsigned int *len) -{ - if (mono) { - if (bold) { - if (italic) return pdf_lookup_builtin_font(ctx, "Courier-BoldOblique", len); - else return pdf_lookup_builtin_font(ctx, "Courier-Bold", len); - } else { - if (italic) return pdf_lookup_builtin_font(ctx, "Courier-Oblique", len); - else return pdf_lookup_builtin_font(ctx, "Courier", len); - } - } else if (serif) { - if (bold) { - if (italic) return pdf_lookup_builtin_font(ctx, "Times-BoldItalic", len); - else return pdf_lookup_builtin_font(ctx, "Times-Bold", len); - } else { - if (italic) return pdf_lookup_builtin_font(ctx, "Times-Italic", len); - else return pdf_lookup_builtin_font(ctx, "Times-Roman", len); - } - } else { - if (bold) { - if (italic) return pdf_lookup_builtin_font(ctx, "Helvetica-BoldOblique", len); - else return pdf_lookup_builtin_font(ctx, "Helvetica-Bold", len); - } else { - if (italic) return pdf_lookup_builtin_font(ctx, "Helvetica-Oblique", len); - else return pdf_lookup_builtin_font(ctx, "Helvetica", len); - } - } -} - -unsigned char * -pdf_lookup_substitute_cjk_font(fz_context *ctx, int ros, int serif, int wmode, unsigned int *len, int *index) -{ -#ifndef NOCJKFONT -#ifndef NOCJKFULL - *index = wmode; - *len = sizeof pdf_font_DroidSansFallbackFull; - return (unsigned char*) pdf_font_DroidSansFallbackFull; -#else - *index = wmode; - *len = sizeof pdf_font_DroidSansFallback; - return (unsigned char*) pdf_font_DroidSansFallback; -#endif -#else - *len = 0; - return NULL; -#endif -} |