9acfe486d4
In order to handle fonts that specify completely bogus /Flags-entries, fallback to font name matching to determine if the font is a serif one.
850 lines
19 KiB
JavaScript
850 lines
19 KiB
JavaScript
/* Copyright 2015 Mozilla Foundation
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import { getLookupTableFactory } from "./core_utils.js";
|
|
import { normalizeFontName } from "./fonts_utils.js";
|
|
|
|
/**
|
|
* Hold a map of decoded fonts and of the standard fourteen Type1
|
|
* fonts and their acronyms.
|
|
*/
|
|
const getStdFontMap = getLookupTableFactory(function (t) {
|
|
// The standard 14 fonts:
|
|
t["Times-Roman"] = "Times-Roman";
|
|
t.Helvetica = "Helvetica";
|
|
t.Courier = "Courier";
|
|
t.Symbol = "Symbol";
|
|
t["Times-Bold"] = "Times-Bold";
|
|
t["Helvetica-Bold"] = "Helvetica-Bold";
|
|
t["Courier-Bold"] = "Courier-Bold";
|
|
t.ZapfDingbats = "ZapfDingbats";
|
|
t["Times-Italic"] = "Times-Italic";
|
|
t["Helvetica-Oblique"] = "Helvetica-Oblique";
|
|
t["Courier-Oblique"] = "Courier-Oblique";
|
|
t["Times-BoldItalic"] = "Times-BoldItalic";
|
|
t["Helvetica-BoldOblique"] = "Helvetica-BoldOblique";
|
|
t["Courier-BoldOblique"] = "Courier-BoldOblique";
|
|
|
|
// Extra mappings
|
|
t.ArialNarrow = "Helvetica";
|
|
t["ArialNarrow-Bold"] = "Helvetica-Bold";
|
|
t["ArialNarrow-BoldItalic"] = "Helvetica-BoldOblique";
|
|
t["ArialNarrow-Italic"] = "Helvetica-Oblique";
|
|
t.ArialBlack = "Helvetica";
|
|
t["ArialBlack-Bold"] = "Helvetica-Bold";
|
|
t["ArialBlack-BoldItalic"] = "Helvetica-BoldOblique";
|
|
t["ArialBlack-Italic"] = "Helvetica-Oblique";
|
|
t["Arial-Black"] = "Helvetica";
|
|
t["Arial-Black-Bold"] = "Helvetica-Bold";
|
|
t["Arial-Black-BoldItalic"] = "Helvetica-BoldOblique";
|
|
t["Arial-Black-Italic"] = "Helvetica-Oblique";
|
|
t.Arial = "Helvetica";
|
|
t["Arial-Bold"] = "Helvetica-Bold";
|
|
t["Arial-BoldItalic"] = "Helvetica-BoldOblique";
|
|
t["Arial-Italic"] = "Helvetica-Oblique";
|
|
t["Arial-BoldItalicMT"] = "Helvetica-BoldOblique";
|
|
t["Arial-BoldMT"] = "Helvetica-Bold";
|
|
t["Arial-ItalicMT"] = "Helvetica-Oblique";
|
|
t.ArialMT = "Helvetica";
|
|
t["Courier-BoldItalic"] = "Courier-BoldOblique";
|
|
t["Courier-Italic"] = "Courier-Oblique";
|
|
t.CourierNew = "Courier";
|
|
t["CourierNew-Bold"] = "Courier-Bold";
|
|
t["CourierNew-BoldItalic"] = "Courier-BoldOblique";
|
|
t["CourierNew-Italic"] = "Courier-Oblique";
|
|
t["CourierNewPS-BoldItalicMT"] = "Courier-BoldOblique";
|
|
t["CourierNewPS-BoldMT"] = "Courier-Bold";
|
|
t["CourierNewPS-ItalicMT"] = "Courier-Oblique";
|
|
t.CourierNewPSMT = "Courier";
|
|
t["Helvetica-BoldItalic"] = "Helvetica-BoldOblique";
|
|
t["Helvetica-Italic"] = "Helvetica-Oblique";
|
|
t["Symbol-Bold"] = "Symbol";
|
|
t["Symbol-BoldItalic"] = "Symbol";
|
|
t["Symbol-Italic"] = "Symbol";
|
|
t.TimesNewRoman = "Times-Roman";
|
|
t["TimesNewRoman-Bold"] = "Times-Bold";
|
|
t["TimesNewRoman-BoldItalic"] = "Times-BoldItalic";
|
|
t["TimesNewRoman-Italic"] = "Times-Italic";
|
|
t.TimesNewRomanPS = "Times-Roman";
|
|
t["TimesNewRomanPS-Bold"] = "Times-Bold";
|
|
t["TimesNewRomanPS-BoldItalic"] = "Times-BoldItalic";
|
|
t["TimesNewRomanPS-BoldItalicMT"] = "Times-BoldItalic";
|
|
t["TimesNewRomanPS-BoldMT"] = "Times-Bold";
|
|
t["TimesNewRomanPS-Italic"] = "Times-Italic";
|
|
t["TimesNewRomanPS-ItalicMT"] = "Times-Italic";
|
|
t.TimesNewRomanPSMT = "Times-Roman";
|
|
t["TimesNewRomanPSMT-Bold"] = "Times-Bold";
|
|
t["TimesNewRomanPSMT-BoldItalic"] = "Times-BoldItalic";
|
|
t["TimesNewRomanPSMT-Italic"] = "Times-Italic";
|
|
});
|
|
|
|
// Contains mapping for standard fonts and xfa fonts.
|
|
const getFontNameToFileMap = getLookupTableFactory(function (t) {
|
|
t.Courier = "FoxitFixed.pfb";
|
|
t["Courier-Bold"] = "FoxitFixedBold.pfb";
|
|
t["Courier-BoldOblique"] = "FoxitFixedBoldItalic.pfb";
|
|
t["Courier-Oblique"] = "FoxitFixedItalic.pfb";
|
|
t.Helvetica = "FoxitSans.pfb";
|
|
t["Helvetica-Bold"] = "FoxitSansBold.pfb";
|
|
t["Helvetica-BoldOblique"] = "FoxitSansBoldItalic.pfb";
|
|
t["Helvetica-Oblique"] = "FoxitSansItalic.pfb";
|
|
t["Times-Roman"] = "FoxitSerif.pfb";
|
|
t["Times-Bold"] = "FoxitSerifBold.pfb";
|
|
t["Times-BoldItalic"] = "FoxitSerifBoldItalic.pfb";
|
|
t["Times-Italic"] = "FoxitSerifItalic.pfb";
|
|
t.Symbol = "FoxitSymbol.pfb";
|
|
t.ZapfDingbats = "FoxitDingbats.pfb";
|
|
t["LiberationSans-Regular"] = "LiberationSans-Regular.ttf";
|
|
t["LiberationSans-Bold"] = "LiberationSans-Bold.ttf";
|
|
t["LiberationSans-Italic"] = "LiberationSans-Italic.ttf";
|
|
t["LiberationSans-BoldItalic"] = "LiberationSans-BoldItalic.ttf";
|
|
});
|
|
|
|
/**
|
|
* Holds the map of the non-standard fonts that might be included as
|
|
* a standard fonts without glyph data.
|
|
*/
|
|
const getNonStdFontMap = getLookupTableFactory(function (t) {
|
|
t.Calibri = "Helvetica";
|
|
t["Calibri-Bold"] = "Helvetica-Bold";
|
|
t["Calibri-BoldItalic"] = "Helvetica-BoldOblique";
|
|
t["Calibri-Italic"] = "Helvetica-Oblique";
|
|
t.CenturyGothic = "Helvetica";
|
|
t["CenturyGothic-Bold"] = "Helvetica-Bold";
|
|
t["CenturyGothic-BoldItalic"] = "Helvetica-BoldOblique";
|
|
t["CenturyGothic-Italic"] = "Helvetica-Oblique";
|
|
t.ComicSansMS = "Comic Sans MS";
|
|
t["ComicSansMS-Bold"] = "Comic Sans MS-Bold";
|
|
t["ComicSansMS-BoldItalic"] = "Comic Sans MS-BoldItalic";
|
|
t["ComicSansMS-Italic"] = "Comic Sans MS-Italic";
|
|
t["ItcSymbol-Bold"] = "Helvetica-Bold";
|
|
t["ItcSymbol-BoldItalic"] = "Helvetica-BoldOblique";
|
|
t["ItcSymbol-Book"] = "Helvetica";
|
|
t["ItcSymbol-BookItalic"] = "Helvetica-Oblique";
|
|
t["ItcSymbol-Medium"] = "Helvetica";
|
|
t["ItcSymbol-MediumItalic"] = "Helvetica-Oblique";
|
|
t.LucidaConsole = "Courier";
|
|
t["LucidaConsole-Bold"] = "Courier-Bold";
|
|
t["LucidaConsole-BoldItalic"] = "Courier-BoldOblique";
|
|
t["LucidaConsole-Italic"] = "Courier-Oblique";
|
|
t["LucidaSans-Demi"] = "Helvetica-Bold";
|
|
t["MS-Gothic"] = "MS Gothic";
|
|
t["MS-Gothic-Bold"] = "MS Gothic-Bold";
|
|
t["MS-Gothic-BoldItalic"] = "MS Gothic-BoldItalic";
|
|
t["MS-Gothic-Italic"] = "MS Gothic-Italic";
|
|
t["MS-Mincho"] = "MS Mincho";
|
|
t["MS-Mincho-Bold"] = "MS Mincho-Bold";
|
|
t["MS-Mincho-BoldItalic"] = "MS Mincho-BoldItalic";
|
|
t["MS-Mincho-Italic"] = "MS Mincho-Italic";
|
|
t["MS-PGothic"] = "MS PGothic";
|
|
t["MS-PGothic-Bold"] = "MS PGothic-Bold";
|
|
t["MS-PGothic-BoldItalic"] = "MS PGothic-BoldItalic";
|
|
t["MS-PGothic-Italic"] = "MS PGothic-Italic";
|
|
t["MS-PMincho"] = "MS PMincho";
|
|
t["MS-PMincho-Bold"] = "MS PMincho-Bold";
|
|
t["MS-PMincho-BoldItalic"] = "MS PMincho-BoldItalic";
|
|
t["MS-PMincho-Italic"] = "MS PMincho-Italic";
|
|
t.NuptialScript = "Times-Italic";
|
|
t.SegoeUISymbol = "Helvetica";
|
|
t.Wingdings = "ZapfDingbats";
|
|
t["Wingdings-Regular"] = "ZapfDingbats";
|
|
});
|
|
|
|
const getSerifFonts = getLookupTableFactory(function (t) {
|
|
t["Adobe Jenson"] = true;
|
|
t["Adobe Text"] = true;
|
|
t.Albertus = true;
|
|
t.Aldus = true;
|
|
t.Alexandria = true;
|
|
t.Algerian = true;
|
|
t["American Typewriter"] = true;
|
|
t.Antiqua = true;
|
|
t.Apex = true;
|
|
t.Arno = true;
|
|
t.Aster = true;
|
|
t.Aurora = true;
|
|
t.Baskerville = true;
|
|
t.Bell = true;
|
|
t.Bembo = true;
|
|
t["Bembo Schoolbook"] = true;
|
|
t.Benguiat = true;
|
|
t["Berkeley Old Style"] = true;
|
|
t["Bernhard Modern"] = true;
|
|
t["Berthold City"] = true;
|
|
t.Bodoni = true;
|
|
t["Bauer Bodoni"] = true;
|
|
t["Book Antiqua"] = true;
|
|
t.Bookman = true;
|
|
t["Bordeaux Roman"] = true;
|
|
t["Californian FB"] = true;
|
|
t.Calisto = true;
|
|
t.Calvert = true;
|
|
t.Capitals = true;
|
|
t.Cambria = true;
|
|
t.Cartier = true;
|
|
t.Caslon = true;
|
|
t.Catull = true;
|
|
t.Centaur = true;
|
|
t["Century Old Style"] = true;
|
|
t["Century Schoolbook"] = true;
|
|
t.Chaparral = true;
|
|
t["Charis SIL"] = true;
|
|
t.Cheltenham = true;
|
|
t["Cholla Slab"] = true;
|
|
t.Clarendon = true;
|
|
t.Clearface = true;
|
|
t.Cochin = true;
|
|
t.Colonna = true;
|
|
t["Computer Modern"] = true;
|
|
t["Concrete Roman"] = true;
|
|
t.Constantia = true;
|
|
t["Cooper Black"] = true;
|
|
t.Corona = true;
|
|
t.Ecotype = true;
|
|
t.Egyptienne = true;
|
|
t.Elephant = true;
|
|
t.Excelsior = true;
|
|
t.Fairfield = true;
|
|
t["FF Scala"] = true;
|
|
t.Folkard = true;
|
|
t.Footlight = true;
|
|
t.FreeSerif = true;
|
|
t["Friz Quadrata"] = true;
|
|
t.Garamond = true;
|
|
t.Gentium = true;
|
|
t.Georgia = true;
|
|
t.Gloucester = true;
|
|
t["Goudy Old Style"] = true;
|
|
t["Goudy Schoolbook"] = true;
|
|
t["Goudy Pro Font"] = true;
|
|
t.Granjon = true;
|
|
t["Guardian Egyptian"] = true;
|
|
t.Heather = true;
|
|
t.Hercules = true;
|
|
t["High Tower Text"] = true;
|
|
t.Hiroshige = true;
|
|
t["Hoefler Text"] = true;
|
|
t["Humana Serif"] = true;
|
|
t.Imprint = true;
|
|
t["Ionic No. 5"] = true;
|
|
t.Janson = true;
|
|
t.Joanna = true;
|
|
t.Korinna = true;
|
|
t.Lexicon = true;
|
|
t.LiberationSerif = true;
|
|
t["Liberation Serif"] = true;
|
|
t["Linux Libertine"] = true;
|
|
t.Literaturnaya = true;
|
|
t.Lucida = true;
|
|
t["Lucida Bright"] = true;
|
|
t.Melior = true;
|
|
t.Memphis = true;
|
|
t.Miller = true;
|
|
t.Minion = true;
|
|
t.Modern = true;
|
|
t["Mona Lisa"] = true;
|
|
t["Mrs Eaves"] = true;
|
|
t["MS Serif"] = true;
|
|
t["Museo Slab"] = true;
|
|
t["New York"] = true;
|
|
t["Nimbus Roman"] = true;
|
|
t["NPS Rawlinson Roadway"] = true;
|
|
t.NuptialScript = true;
|
|
t.Palatino = true;
|
|
t.Perpetua = true;
|
|
t.Plantin = true;
|
|
t["Plantin Schoolbook"] = true;
|
|
t.Playbill = true;
|
|
t["Poor Richard"] = true;
|
|
t["Rawlinson Roadway"] = true;
|
|
t.Renault = true;
|
|
t.Requiem = true;
|
|
t.Rockwell = true;
|
|
t.Roman = true;
|
|
t["Rotis Serif"] = true;
|
|
t.Sabon = true;
|
|
t.Scala = true;
|
|
t.Seagull = true;
|
|
t.Sistina = true;
|
|
t.Souvenir = true;
|
|
t.STIX = true;
|
|
t["Stone Informal"] = true;
|
|
t["Stone Serif"] = true;
|
|
t.Sylfaen = true;
|
|
t.Times = true;
|
|
t.Trajan = true;
|
|
t["Trinité"] = true;
|
|
t["Trump Mediaeval"] = true;
|
|
t.Utopia = true;
|
|
t["Vale Type"] = true;
|
|
t["Bitstream Vera"] = true;
|
|
t["Vera Serif"] = true;
|
|
t.Versailles = true;
|
|
t.Wanted = true;
|
|
t.Weiss = true;
|
|
t["Wide Latin"] = true;
|
|
t.Windsor = true;
|
|
t.XITS = true;
|
|
});
|
|
|
|
const getSymbolsFonts = getLookupTableFactory(function (t) {
|
|
t.Dingbats = true;
|
|
t.Symbol = true;
|
|
t.ZapfDingbats = true;
|
|
});
|
|
|
|
// Glyph map for well-known standard fonts. Sometimes Ghostscript uses CID
|
|
// fonts, but does not embed the CID to GID mapping. The mapping is incomplete
|
|
// for all glyphs, but common for some set of the standard fonts.
|
|
const getGlyphMapForStandardFonts = getLookupTableFactory(function (t) {
|
|
t[2] = 10;
|
|
t[3] = 32;
|
|
t[4] = 33;
|
|
t[5] = 34;
|
|
t[6] = 35;
|
|
t[7] = 36;
|
|
t[8] = 37;
|
|
t[9] = 38;
|
|
t[10] = 39;
|
|
t[11] = 40;
|
|
t[12] = 41;
|
|
t[13] = 42;
|
|
t[14] = 43;
|
|
t[15] = 44;
|
|
t[16] = 45;
|
|
t[17] = 46;
|
|
t[18] = 47;
|
|
t[19] = 48;
|
|
t[20] = 49;
|
|
t[21] = 50;
|
|
t[22] = 51;
|
|
t[23] = 52;
|
|
t[24] = 53;
|
|
t[25] = 54;
|
|
t[26] = 55;
|
|
t[27] = 56;
|
|
t[28] = 57;
|
|
t[29] = 58;
|
|
t[30] = 894;
|
|
t[31] = 60;
|
|
t[32] = 61;
|
|
t[33] = 62;
|
|
t[34] = 63;
|
|
t[35] = 64;
|
|
t[36] = 65;
|
|
t[37] = 66;
|
|
t[38] = 67;
|
|
t[39] = 68;
|
|
t[40] = 69;
|
|
t[41] = 70;
|
|
t[42] = 71;
|
|
t[43] = 72;
|
|
t[44] = 73;
|
|
t[45] = 74;
|
|
t[46] = 75;
|
|
t[47] = 76;
|
|
t[48] = 77;
|
|
t[49] = 78;
|
|
t[50] = 79;
|
|
t[51] = 80;
|
|
t[52] = 81;
|
|
t[53] = 82;
|
|
t[54] = 83;
|
|
t[55] = 84;
|
|
t[56] = 85;
|
|
t[57] = 86;
|
|
t[58] = 87;
|
|
t[59] = 88;
|
|
t[60] = 89;
|
|
t[61] = 90;
|
|
t[62] = 91;
|
|
t[63] = 92;
|
|
t[64] = 93;
|
|
t[65] = 94;
|
|
t[66] = 95;
|
|
t[67] = 96;
|
|
t[68] = 97;
|
|
t[69] = 98;
|
|
t[70] = 99;
|
|
t[71] = 100;
|
|
t[72] = 101;
|
|
t[73] = 102;
|
|
t[74] = 103;
|
|
t[75] = 104;
|
|
t[76] = 105;
|
|
t[77] = 106;
|
|
t[78] = 107;
|
|
t[79] = 108;
|
|
t[80] = 109;
|
|
t[81] = 110;
|
|
t[82] = 111;
|
|
t[83] = 112;
|
|
t[84] = 113;
|
|
t[85] = 114;
|
|
t[86] = 115;
|
|
t[87] = 116;
|
|
t[88] = 117;
|
|
t[89] = 118;
|
|
t[90] = 119;
|
|
t[91] = 120;
|
|
t[92] = 121;
|
|
t[93] = 122;
|
|
t[94] = 123;
|
|
t[95] = 124;
|
|
t[96] = 125;
|
|
t[97] = 126;
|
|
t[98] = 196;
|
|
t[99] = 197;
|
|
t[100] = 199;
|
|
t[101] = 201;
|
|
t[102] = 209;
|
|
t[103] = 214;
|
|
t[104] = 220;
|
|
t[105] = 225;
|
|
t[106] = 224;
|
|
t[107] = 226;
|
|
t[108] = 228;
|
|
t[109] = 227;
|
|
t[110] = 229;
|
|
t[111] = 231;
|
|
t[112] = 233;
|
|
t[113] = 232;
|
|
t[114] = 234;
|
|
t[115] = 235;
|
|
t[116] = 237;
|
|
t[117] = 236;
|
|
t[118] = 238;
|
|
t[119] = 239;
|
|
t[120] = 241;
|
|
t[121] = 243;
|
|
t[122] = 242;
|
|
t[123] = 244;
|
|
t[124] = 246;
|
|
t[125] = 245;
|
|
t[126] = 250;
|
|
t[127] = 249;
|
|
t[128] = 251;
|
|
t[129] = 252;
|
|
t[130] = 8224;
|
|
t[131] = 176;
|
|
t[132] = 162;
|
|
t[133] = 163;
|
|
t[134] = 167;
|
|
t[135] = 8226;
|
|
t[136] = 182;
|
|
t[137] = 223;
|
|
t[138] = 174;
|
|
t[139] = 169;
|
|
t[140] = 8482;
|
|
t[141] = 180;
|
|
t[142] = 168;
|
|
t[143] = 8800;
|
|
t[144] = 198;
|
|
t[145] = 216;
|
|
t[146] = 8734;
|
|
t[147] = 177;
|
|
t[148] = 8804;
|
|
t[149] = 8805;
|
|
t[150] = 165;
|
|
t[151] = 181;
|
|
t[152] = 8706;
|
|
t[153] = 8721;
|
|
t[154] = 8719;
|
|
t[156] = 8747;
|
|
t[157] = 170;
|
|
t[158] = 186;
|
|
t[159] = 8486;
|
|
t[160] = 230;
|
|
t[161] = 248;
|
|
t[162] = 191;
|
|
t[163] = 161;
|
|
t[164] = 172;
|
|
t[165] = 8730;
|
|
t[166] = 402;
|
|
t[167] = 8776;
|
|
t[168] = 8710;
|
|
t[169] = 171;
|
|
t[170] = 187;
|
|
t[171] = 8230;
|
|
t[200] = 193;
|
|
t[203] = 205;
|
|
t[210] = 218;
|
|
t[223] = 711;
|
|
t[224] = 321;
|
|
t[225] = 322;
|
|
t[226] = 352;
|
|
t[227] = 353;
|
|
t[228] = 381;
|
|
t[229] = 382;
|
|
t[233] = 221;
|
|
t[234] = 253;
|
|
t[252] = 263;
|
|
t[253] = 268;
|
|
t[254] = 269;
|
|
t[258] = 258;
|
|
t[260] = 260;
|
|
t[261] = 261;
|
|
t[265] = 280;
|
|
t[266] = 281;
|
|
t[267] = 282;
|
|
t[268] = 283;
|
|
t[269] = 313;
|
|
t[275] = 323;
|
|
t[276] = 324;
|
|
t[278] = 328;
|
|
t[283] = 344;
|
|
t[284] = 345;
|
|
t[285] = 346;
|
|
t[286] = 347;
|
|
t[292] = 367;
|
|
t[295] = 377;
|
|
t[296] = 378;
|
|
t[298] = 380;
|
|
t[305] = 963;
|
|
t[306] = 964;
|
|
t[307] = 966;
|
|
t[308] = 8215;
|
|
t[309] = 8252;
|
|
t[310] = 8319;
|
|
t[311] = 8359;
|
|
t[312] = 8592;
|
|
t[313] = 8593;
|
|
t[337] = 9552;
|
|
t[493] = 1039;
|
|
t[494] = 1040;
|
|
t[705] = 1524;
|
|
t[706] = 8362;
|
|
t[710] = 64288;
|
|
t[711] = 64298;
|
|
t[759] = 1617;
|
|
t[761] = 1776;
|
|
t[763] = 1778;
|
|
t[775] = 1652;
|
|
t[777] = 1764;
|
|
t[778] = 1780;
|
|
t[779] = 1781;
|
|
t[780] = 1782;
|
|
t[782] = 771;
|
|
t[783] = 64726;
|
|
t[786] = 8363;
|
|
t[788] = 8532;
|
|
t[790] = 768;
|
|
t[791] = 769;
|
|
t[792] = 768;
|
|
t[795] = 803;
|
|
t[797] = 64336;
|
|
t[798] = 64337;
|
|
t[799] = 64342;
|
|
t[800] = 64343;
|
|
t[801] = 64344;
|
|
t[802] = 64345;
|
|
t[803] = 64362;
|
|
t[804] = 64363;
|
|
t[805] = 64364;
|
|
t[2424] = 7821;
|
|
t[2425] = 7822;
|
|
t[2426] = 7823;
|
|
t[2427] = 7824;
|
|
t[2428] = 7825;
|
|
t[2429] = 7826;
|
|
t[2430] = 7827;
|
|
t[2433] = 7682;
|
|
t[2678] = 8045;
|
|
t[2679] = 8046;
|
|
t[2830] = 1552;
|
|
t[2838] = 686;
|
|
t[2840] = 751;
|
|
t[2842] = 753;
|
|
t[2843] = 754;
|
|
t[2844] = 755;
|
|
t[2846] = 757;
|
|
t[2856] = 767;
|
|
t[2857] = 848;
|
|
t[2858] = 849;
|
|
t[2862] = 853;
|
|
t[2863] = 854;
|
|
t[2864] = 855;
|
|
t[2865] = 861;
|
|
t[2866] = 862;
|
|
t[2906] = 7460;
|
|
t[2908] = 7462;
|
|
t[2909] = 7463;
|
|
t[2910] = 7464;
|
|
t[2912] = 7466;
|
|
t[2913] = 7467;
|
|
t[2914] = 7468;
|
|
t[2916] = 7470;
|
|
t[2917] = 7471;
|
|
t[2918] = 7472;
|
|
t[2920] = 7474;
|
|
t[2921] = 7475;
|
|
t[2922] = 7476;
|
|
t[2924] = 7478;
|
|
t[2925] = 7479;
|
|
t[2926] = 7480;
|
|
t[2928] = 7482;
|
|
t[2929] = 7483;
|
|
t[2930] = 7484;
|
|
t[2932] = 7486;
|
|
t[2933] = 7487;
|
|
t[2934] = 7488;
|
|
t[2936] = 7490;
|
|
t[2937] = 7491;
|
|
t[2938] = 7492;
|
|
t[2940] = 7494;
|
|
t[2941] = 7495;
|
|
t[2942] = 7496;
|
|
t[2944] = 7498;
|
|
t[2946] = 7500;
|
|
t[2948] = 7502;
|
|
t[2950] = 7504;
|
|
t[2951] = 7505;
|
|
t[2952] = 7506;
|
|
t[2954] = 7508;
|
|
t[2955] = 7509;
|
|
t[2956] = 7510;
|
|
t[2958] = 7512;
|
|
t[2959] = 7513;
|
|
t[2960] = 7514;
|
|
t[2962] = 7516;
|
|
t[2963] = 7517;
|
|
t[2964] = 7518;
|
|
t[2966] = 7520;
|
|
t[2967] = 7521;
|
|
t[2968] = 7522;
|
|
t[2970] = 7524;
|
|
t[2971] = 7525;
|
|
t[2972] = 7526;
|
|
t[2974] = 7528;
|
|
t[2975] = 7529;
|
|
t[2976] = 7530;
|
|
t[2978] = 1537;
|
|
t[2979] = 1538;
|
|
t[2980] = 1539;
|
|
t[2982] = 1549;
|
|
t[2983] = 1551;
|
|
t[2984] = 1552;
|
|
t[2986] = 1554;
|
|
t[2987] = 1555;
|
|
t[2988] = 1556;
|
|
t[2990] = 1623;
|
|
t[2991] = 1624;
|
|
t[2995] = 1775;
|
|
t[2999] = 1791;
|
|
t[3002] = 64290;
|
|
t[3003] = 64291;
|
|
t[3004] = 64292;
|
|
t[3006] = 64294;
|
|
t[3007] = 64295;
|
|
t[3008] = 64296;
|
|
t[3011] = 1900;
|
|
t[3014] = 8223;
|
|
t[3015] = 8244;
|
|
t[3017] = 7532;
|
|
t[3018] = 7533;
|
|
t[3019] = 7534;
|
|
t[3075] = 7590;
|
|
t[3076] = 7591;
|
|
t[3079] = 7594;
|
|
t[3080] = 7595;
|
|
t[3083] = 7598;
|
|
t[3084] = 7599;
|
|
t[3087] = 7602;
|
|
t[3088] = 7603;
|
|
t[3091] = 7606;
|
|
t[3092] = 7607;
|
|
t[3095] = 7610;
|
|
t[3096] = 7611;
|
|
t[3099] = 7614;
|
|
t[3100] = 7615;
|
|
t[3103] = 7618;
|
|
t[3104] = 7619;
|
|
t[3107] = 8337;
|
|
t[3108] = 8338;
|
|
t[3116] = 1884;
|
|
t[3119] = 1885;
|
|
t[3120] = 1885;
|
|
t[3123] = 1886;
|
|
t[3124] = 1886;
|
|
t[3127] = 1887;
|
|
t[3128] = 1887;
|
|
t[3131] = 1888;
|
|
t[3132] = 1888;
|
|
t[3135] = 1889;
|
|
t[3136] = 1889;
|
|
t[3139] = 1890;
|
|
t[3140] = 1890;
|
|
t[3143] = 1891;
|
|
t[3144] = 1891;
|
|
t[3147] = 1892;
|
|
t[3148] = 1892;
|
|
t[3153] = 580;
|
|
t[3154] = 581;
|
|
t[3157] = 584;
|
|
t[3158] = 585;
|
|
t[3161] = 588;
|
|
t[3162] = 589;
|
|
t[3165] = 891;
|
|
t[3166] = 892;
|
|
t[3169] = 1274;
|
|
t[3170] = 1275;
|
|
t[3173] = 1278;
|
|
t[3174] = 1279;
|
|
t[3181] = 7622;
|
|
t[3182] = 7623;
|
|
t[3282] = 11799;
|
|
t[3316] = 578;
|
|
t[3379] = 42785;
|
|
t[3393] = 1159;
|
|
t[3416] = 8377;
|
|
});
|
|
|
|
// The glyph map for ArialBlack differs slightly from the glyph map used for
|
|
// other well-known standard fonts. Hence we use this (incomplete) CID to GID
|
|
// mapping to adjust the glyph map for non-embedded ArialBlack fonts.
|
|
const getSupplementalGlyphMapForArialBlack = getLookupTableFactory(function (
|
|
t
|
|
) {
|
|
t[227] = 322;
|
|
t[264] = 261;
|
|
t[291] = 346;
|
|
});
|
|
|
|
// The glyph map for Calibri (a Windows font) differs from the glyph map used
|
|
// in the standard fonts. Hence we use this (incomplete) CID to GID mapping to
|
|
// adjust the glyph map for non-embedded Calibri fonts.
|
|
const getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) {
|
|
t[1] = 32;
|
|
t[4] = 65;
|
|
t[6] = 193;
|
|
t[17] = 66;
|
|
t[18] = 67;
|
|
t[21] = 268;
|
|
t[24] = 68;
|
|
t[28] = 69;
|
|
t[30] = 201;
|
|
t[32] = 282;
|
|
t[38] = 70;
|
|
t[39] = 71;
|
|
t[44] = 72;
|
|
t[47] = 73;
|
|
t[49] = 205;
|
|
t[58] = 74;
|
|
t[60] = 75;
|
|
t[62] = 76;
|
|
t[68] = 77;
|
|
t[69] = 78;
|
|
t[75] = 79;
|
|
t[87] = 80;
|
|
t[89] = 81;
|
|
t[90] = 82;
|
|
t[92] = 344;
|
|
t[94] = 83;
|
|
t[97] = 352;
|
|
t[100] = 84;
|
|
t[104] = 85;
|
|
t[115] = 86;
|
|
t[116] = 87;
|
|
t[121] = 88;
|
|
t[122] = 89;
|
|
t[124] = 221;
|
|
t[127] = 90;
|
|
t[129] = 381;
|
|
t[258] = 97;
|
|
t[260] = 225;
|
|
t[268] = 261;
|
|
t[271] = 98;
|
|
t[272] = 99;
|
|
t[273] = 263;
|
|
t[275] = 269;
|
|
t[282] = 100;
|
|
t[286] = 101;
|
|
t[288] = 233;
|
|
t[290] = 283;
|
|
t[295] = 281;
|
|
t[296] = 102;
|
|
t[336] = 103;
|
|
t[346] = 104;
|
|
t[349] = 105;
|
|
t[351] = 237;
|
|
t[361] = 106;
|
|
t[364] = 107;
|
|
t[367] = 108;
|
|
t[371] = 322;
|
|
t[373] = 109;
|
|
t[374] = 110;
|
|
t[381] = 111;
|
|
t[383] = 243;
|
|
t[393] = 112;
|
|
t[395] = 113;
|
|
t[396] = 114;
|
|
t[398] = 345;
|
|
t[400] = 115;
|
|
t[401] = 347;
|
|
t[403] = 353;
|
|
t[410] = 116;
|
|
t[437] = 117;
|
|
t[448] = 118;
|
|
t[449] = 119;
|
|
t[454] = 120;
|
|
t[455] = 121;
|
|
t[457] = 253;
|
|
t[460] = 122;
|
|
t[462] = 382;
|
|
t[463] = 380;
|
|
t[853] = 44;
|
|
t[855] = 58;
|
|
t[856] = 46;
|
|
t[876] = 47;
|
|
t[878] = 45;
|
|
t[882] = 45;
|
|
t[894] = 40;
|
|
t[895] = 41;
|
|
t[896] = 91;
|
|
t[897] = 93;
|
|
t[923] = 64;
|
|
t[1004] = 48;
|
|
t[1005] = 49;
|
|
t[1006] = 50;
|
|
t[1007] = 51;
|
|
t[1008] = 52;
|
|
t[1009] = 53;
|
|
t[1010] = 54;
|
|
t[1011] = 55;
|
|
t[1012] = 56;
|
|
t[1013] = 57;
|
|
t[1081] = 37;
|
|
t[1085] = 43;
|
|
t[1086] = 45;
|
|
});
|
|
|
|
function getStandardFontName(name) {
|
|
const fontName = normalizeFontName(name);
|
|
const stdFontMap = getStdFontMap();
|
|
return stdFontMap[fontName];
|
|
}
|
|
|
|
export {
|
|
getFontNameToFileMap,
|
|
getGlyphMapForStandardFonts,
|
|
getNonStdFontMap,
|
|
getSerifFonts,
|
|
getStandardFontName,
|
|
getStdFontMap,
|
|
getSupplementalGlyphMapForArialBlack,
|
|
getSupplementalGlyphMapForCalibri,
|
|
getSymbolsFonts,
|
|
};
|