diff --git a/Encodings.js b/Encodings.js deleted file mode 100644 index d32a399c8..000000000 --- a/Encodings.js +++ /dev/null @@ -1,1552 +0,0 @@ - -var Encodings = { - ExpertEncoding: [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "space", - "exclamsmall", - "Hungarumlautsmall", - null, - "dollaroldstyle", - "dollarsuperior", - "ampersandsmall", - "Acutesmall", - "parenleftsuperior", - "parenrightsuperior", - "twodotenleader", - "onedotenleader", - "comma", - "hyphen", - "period", - "fraction", - "zerooldstyle", - "oneoldstyle", - "twooldstyle", - "threeoldstyle", - "fouroldstyle", - "fiveoldstyle", - "sixoldstyle", - "sevenoldstyle", - "eightoldstyle", - "nineoldstyle", - "colon", - "semicolon", - "commasuperior", - "threequartersemdash", - "periodsuperior", - "questionsmall", - null, - "asuperior", - "bsuperior", - "centsuperior", - "dsuperior", - "esuperior", - null, - null, - null, - "isuperior", - null, - null, - "lsuperior", - "msuperior", - "nsuperior", - "osuperior", - null, - null, - "rsuperior", - "ssuperior", - "tsuperior", - null, - "ff", - "fi", - "fl", - "ffi", - "ffl", - "parenleftinferior", - null, - "parenrightinferior", - "Circumflexsmall", - "hyphensuperior", - "Gravesmall", - "Asmall", - "Bsmall", - "Csmall", - "Dsmall", - "Esmall", - "Fsmall", - "Gsmall", - "Hsmall", - "Ismall", - "Jsmall", - "Ksmall", - "Lsmall", - "Msmall", - "Nsmall", - "Osmall", - "Psmall", - "Qsmall", - "Rsmall", - "Ssmall", - "Tsmall", - "Usmall", - "Vsmall", - "Wsmall", - "Xsmall", - "Ysmall", - "Zsmall", - "colonmonetary", - "onefitted", - "rupiah", - "Tildesmall", - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "exclamdownsmall", - "centoldstyle", - "Lslashsmall", - null, - null, - "Scaronsmall", - "Zcaronsmall", - "Dieresissmall", - "Brevesmall", - "Caronsmall", - null, - "Dotaccentsmall", - null, - null, - "Macronsmall", - null, - null, - "figuredash", - "hypheninferior", - null, - null, - "Ogoneksmall", - "Ringsmall", - "Cedillasmall", - null, - null, - null, - "onequarter", - "onehalf", - "threequarters", - "questiondownsmall", - "oneeighth", - "threeeighths", - "fiveeighths", - "seveneighths", - "onethird", - "twothirds", - null, - null, - "zerosuperior", - "onesuperior", - "twosuperior", - "threesuperior", - "foursuperior", - "fivesuperior", - "sixsuperior", - "sevensuperior", - "eightsuperior", - "ninesuperior", - "zeroinferior", - "oneinferior", - "twoinferior", - "threeinferior", - "fourinferior", - "fiveinferior", - "sixinferior", - "seveninferior", - "eightinferior", - "nineinferior", - "centinferior", - "dollarinferior", - "periodinferior", - "commainferior", - "Agravesmall", - "Aacutesmall", - "Acircumflexsmall", - "Atildesmall", - "Adieresissmall", - "Aringsmall", - "AEsmall", - "Ccedillasmall", - "Egravesmall", - "Eacutesmall", - "Ecircumflexsmall", - "Edieresissmall", - "Igravesmall", - "Iacutesmall", - "Icircumflexsmall", - "Idieresissmall", - "Ethsmall", - "Ntildesmall", - "Ogravesmall", - "Oacutesmall", - "Ocircumflexsmall", - "Otildesmall", - "Odieresissmall", - "OEsmall", - "Oslashsmall", - "Ugravesmall", - "Uacutesmall", - "Ucircumflexsmall", - "Udieresissmall", - "Yacutesmall", - "Thornsmall", - "Ydieresissmall" - ], - MacExpertEncoding: [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "space", - "exclamsmall", - "Hungarumlautsmall", - "centoldstyle", - "dollaroldstyle", - "dollarsuperior", - "ampersandsmall", - "Acutesmall", - "parenleftsuperior", - "parenrightsuperior", - "twodotenleader", - "onedotenleader", - "comma", - "hyphen", - "period", - "fraction", - "zerooldstyle", - "oneoldstyle", - "twooldstyle", - "threeoldstyle", - "fouroldstyle", - "fiveoldstyle", - "sixoldstyle", - "sevenoldstyle", - "eightoldstyle", - "nineoldstyle", - "colon", - "semicolon", - null, - "threequartersemdash", - null, - "questionsmall", - null, - null, - null, - null, - "Ethsmall", - null, - null, - "onequarter", - "onehalf", - "threequarters", - "oneeighth", - "threeeighths", - "fiveeighths", - "seveneighths", - "onethird", - "twothirds", - null, - null, - null, - null, - null, - null, - "ff", - "fi", - "fl", - "ffi", - "ffl", - "parenleftinferior", - null, - "parenrightinferior", - "Circumflexsmall", - "hypheninferior", - "Gravesmall", - "Asmall", - "Bsmall", - "Csmall", - "Dsmall", - "Esmall", - "Fsmall", - "Gsmall", - "Hsmall", - "Ismall", - "Jsmall", - "Ksmall", - "Lsmall", - "Msmall", - "Nsmall", - "Osmall", - "Psmall", - "Qsmall", - "Rsmall", - "Ssmall", - "Tsmall", - "Usmall", - "Vsmall", - "Wsmall", - "Xsmall", - "Ysmall", - "Zsmall", - "colonmonetary", - "onefitted", - "rupiah", - "Tildesmall", - null, - null, - "asuperior", - "centsuperior", - null, - null, - null, - null, - "Aacutesmall", - "Agravesmall", - "Acircumflexsmall", - "Adieresissmall", - "Atildesmall", - "Aringsmall", - "Ccedillasmall", - "Eacutesmall", - "Egravesmall", - "Ecircumflexsmall", - "Edieresissmall", - "Iacutesmall", - "Igravesmall", - "Icircumflexsmall", - "Idieresissmall", - "Ntildesmall", - "Oacutesmall", - "Ogravesmall", - "Ocircumflexsmall", - "Odieresissmall", - "Otildesmall", - "Uacutesmall", - "Ugravesmall", - "Ucircumflexsmall", - "Udieresissmall", - null, - "eightsuperior", - "fourinferior", - "threeinferior", - "sixinferior", - "eightinferior", - "seveninferior", - "Scaronsmall", - null, - "centinferior", - "twoinferior", - null, - "Dieresissmall", - null, - "Caronsmall", - "osuperior", - "fiveinferior", - null, - "commainferior", - "periodinferior", - "Yacutesmall", - null, - "dollarinferior", - null, - null, - "Thornsmall", - null, - "nineinferior", - "zeroinferior", - "Zcaronsmall", - "AEsmall", - "Oslashsmall", - "questiondownsmall", - "oneinferior", - "Lslashsmall", - null, - null, - null, - null, - null, - null, - "Cedillasmall", - null, - null, - null, - null, - null, - "OEsmall", - "figuredash", - "hyphensuperior", - null, - null, - null, - null, - "exclamdownsmall", - null, - "Ydieresissmall", - null, - "onesuperior", - "twosuperior", - "threesuperior", - "foursuperior", - "fivesuperior", - "sixsuperior", - "sevensuperior", - "ninesuperior", - "zerosuperior", - null, - "esuperior", - "rsuperior", - "tsuperior", - null, - null, - "isuperior", - "ssuperior", - "dsuperior", - null, - null, - null, - null, - null, - "lsuperior", - "Ogoneksmall", - "Brevesmall", - "Macronsmall", - "bsuperior", - "nsuperior", - "msuperior", - "commasuperior", - "periodsuperior", - "Dotaccentsmall", - "Ringsmall", - null, - null, - null, - null - ], - MacRomanEncoding: [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "space", - "exclam", - "quotedbl", - "numbersign", - "dollar", - "percent", - "ampersand", - "quotesingle", - "parenleft", - "parenright", - "asterisk", - "plus", - "comma", - "hyphen", - "period", - "slash", - "zero", - "one", - "two", - "three", - "four", - "five", - "six", - "seven", - "eight", - "nine", - "colon", - "semicolon", - "less", - "equal", - "greater", - "question", - "at", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "bracketleft", - "backslash", - "bracketright", - "asciicircum", - "underscore", - "grave", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "braceleft", - "bar", - "braceright", - "asciitilde", - null, - "Adieresis", - "Aring", - "Ccedilla", - "Eacute", - "Ntilde", - "Odieresis", - "Udieresis", - "aacute", - "agrave", - "acircumflex", - "adieresis", - "atilde", - "aring", - "ccedilla", - "eacute", - "egrave", - "ecircumflex", - "edieresis", - "iacute", - "igrave", - "icircumflex", - "idieresis", - "ntilde", - "oacute", - "ograve", - "ocircumflex", - "odieresis", - "otilde", - "uacute", - "ugrave", - "ucircumflex", - "udieresis", - "dagger", - "degree", - "cent", - "sterling", - "section", - "bullet", - "paragraph", - "germandbls", - "registered", - "copyright", - "trademark", - "acute", - "dieresis", - "notequal", - "AE", - "Oslash", - "infinity", - "plusminus", - "lessequal", - "greaterequal", - "yen", - "mu", - "partialdiff", - "summation", - "product", - "pi", - "integral", - "ordfeminine", - "ordmasculine", - "Omega", - "ae", - "oslash", - "questiondown", - "exclamdown", - "logicalnot", - "radical", - "florin", - "approxequal", - "Delta", - "guillemotleft", - "guillemotright", - "ellipsis", - "space", - "Agrave", - "Atilde", - "Otilde", - "OE", - "oe", - "endash", - "emdash", - "quotedblleft", - "quotedblright", - "quoteleft", - "quoteright", - "divide", - "lozenge", - "ydieresis", - "Ydieresis", - "fraction", - "currency", - "guilsinglleft", - "guilsinglright", - "fi", - "fl", - "daggerdbl", - "periodcentered", - "quotesinglbase", - "quotedblbase", - "perthousand", - "Acircumflex", - "Ecircumflex", - "Aacute", - "Edieresis", - "Egrave", - "Iacute", - "Icircumflex", - "Idieresis", - "Igrave", - "Oacute", - "Ocircumflex", - "apple", - "Ograve", - "Uacute", - "Ucircumflex", - "Ugrave", - "dotlessi", - "circumflex", - "tilde", - "macron", - "breve", - "dotaccent", - "ring", - "cedilla", - "hungarumlaut", - "ogonek", - "caron" - ], - StandardEncoding: [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "space", - "exclam", - "quotedbl", - "numbersign", - "dollar", - "percent", - "ampersand", - "quoteright", - "parenleft", - "parenright", - "asterisk", - "plus", - "comma", - "hyphen", - "period", - "slash", - "zero", - "one", - "two", - "three", - "four", - "five", - "six", - "seven", - "eight", - "nine", - "colon", - "semicolon", - "less", - "equal", - "greater", - "question", - "at", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "bracketleft", - "backslash", - "bracketright", - "asciicircum", - "underscore", - "quoteleft", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "braceleft", - "bar", - "braceright", - "asciitilde", - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "exclamdown", - "cent", - "sterling", - "fraction", - "yen", - "florin", - "section", - "currency", - "quotesingle", - "quotedblleft", - "guillemotleft", - "guilsinglleft", - "guilsinglright", - "fi", - "fl", - null, - "endash", - "dagger", - "daggerdbl", - "periodcentered", - null, - "paragraph", - "bullet", - "quotesinglbase", - "quotedblbase", - "quotedblright", - "guillemotright", - "ellipsis", - "perthousand", - null, - "questiondown", - null, - "grave", - "acute", - "circumflex", - "tilde", - "macron", - "breve", - "dotaccent", - "dieresis", - null, - "ring", - "cedilla", - null, - "hungarumlaut", - "ogonek", - "caron", - "emdash", - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "AE", - null, - "ordfeminine", - null, - null, - null, - null, - "Lslash", - "Oslash", - "OE", - "ordmasculine", - null, - null, - null, - null, - null, - "ae", - null, - null, - null, - "dotlessi", - null, - null, - "lslash", - "oslash", - "oe", - "germandbls", - null, - null, - null, - null - ], - WinAnsiEncoding: [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "space", - "exclam", - "quotedbl", - "numbersign", - "dollar", - "percent", - "ampersand", - "quotesingle", - "parenleft", - "parenright", - "asterisk", - "plus", - "comma", - "hyphen", - "period", - "slash", - "zero", - "one", - "two", - "three", - "four", - "five", - "six", - "seven", - "eight", - "nine", - "colon", - "semicolon", - "less", - "equal", - "greater", - "question", - "at", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "bracketleft", - "backslash", - "bracketright", - "asciicircum", - "underscore", - "grave", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "braceleft", - "bar", - "braceright", - "asciitilde", - "bullet", - "Euro", - "bullet", - "quotesinglbase", - "florin", - "quotedblbase", - "ellipsis", - "dagger", - "daggerdbl", - "circumflex", - "perthousand", - "Scaron", - "guilsinglleft", - "OE", - "bullet", - "Zcaron", - "bullet", - "bullet", - "quoteleft", - "quoteright", - "quotedblleft", - "quotedblright", - "bullet", - "endash", - "emdash", - "tilde", - "trademark", - "scaron", - "guilsinglright", - "oe", - "bullet", - "zcaron", - "Ydieresis", - "space", - "exclamdown", - "cent", - "sterling", - "currency", - "yen", - "brokenbar", - "section", - "dieresis", - "copyright", - "ordfeminine", - "guillemotleft", - "logicalnot", - "hyphen", - "registered", - "macron", - "degree", - "plusminus", - "twosuperior", - "threesuperior", - "acute", - "mu", - "paragraph", - "periodcentered", - "cedilla", - "onesuperior", - "ordmasculine", - "guillemotright", - "onequarter", - "onehalf", - "threequarters", - "questiondown", - "Agrave", - "Aacute", - "Acircumflex", - "Atilde", - "Adieresis", - "Aring", - "AE", - "Ccedilla", - "Egrave", - "Eacute", - "Ecircumflex", - "Edieresis", - "Igrave", - "Iacute", - "Icircumflex", - "Idieresis", - "Eth", - "Ntilde", - "Ograve", - "Oacute", - "Ocircumflex", - "Otilde", - "Odieresis", - "multiply", - "Oslash", - "Ugrave", - "Uacute", - "Ucircumflex", - "Udieresis", - "Yacute", - "Thorn", - "germandbls", - "agrave", - "aacute", - "acircumflex", - "atilde", - "adieresis", - "aring", - "ae", - "ccedilla", - "egrave", - "eacute", - "ecircumflex", - "edieresis", - "igrave", - "iacute", - "icircumflex", - "idieresis", - "eth", - "ntilde", - "ograve", - "oacute", - "ocircumflex", - "otilde", - "odieresis", - "divide", - "oslash", - "ugrave", - "uacute", - "ucircumflex", - "udieresis", - "yacute", - "thorn", - "ydieresis" - ], - zapfDingbatsEncoding: [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "space", - "a1", - "a2", - "a202", - "a3", - "a4", - "a5", - "a119", - "a118", - "a117", - "a11", - "a12", - "a13", - "a14", - "a15", - "a16", - "a105", - "a17", - "a18", - "a19", - "a20", - "a21", - "a22", - "a23", - "a24", - "a25", - "a26", - "a27", - "a28", - "a6", - "a7", - "a8", - "a9", - "a10", - "a29", - "a30", - "a31", - "a32", - "a33", - "a34", - "a35", - "a36", - "a37", - "a38", - "a39", - "a40", - "a41", - "a42", - "a43", - "a44", - "a45", - "a46", - "a47", - "a48", - "a49", - "a50", - "a51", - "a52", - "a53", - "a54", - "a55", - "a56", - "a57", - "a58", - "a59", - "a60", - "a61", - "a62", - "a63", - "a64", - "a65", - "a66", - "a67", - "a68", - "a69", - "a70", - "a71", - "a72", - "a73", - "a74", - "a203", - "a75", - "a204", - "a76", - "a77", - "a78", - "a79", - "a81", - "a82", - "a83", - "a84", - "a97", - "a98", - "a99", - "a100", - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - "a101", - "a102", - "a103", - "a104", - "a106", - "a107", - "a108", - "a112", - "a111", - "a110", - "a109", - "a120", - "a121", - "a122", - "a123", - "a124", - "a125", - "a126", - "a127", - "a128", - "a129", - "a130", - "a131", - "a132", - "a133", - "a134", - "a135", - "a136", - "a137", - "a138", - "a139", - "a140", - "a141", - "a142", - "a143", - "a144", - "a145", - "a146", - "a147", - "a148", - "a149", - "a150", - "a151", - "a152", - "a153", - "a154", - "a155", - "a156", - "a157", - "a158", - "a159", - "a160", - "a161", - "a163", - "a164", - "a196", - "a165", - "a192", - "a166", - "a167", - "a168", - "a169", - "a170", - "a171", - "a172", - "a173", - "a162", - "a174", - "a175", - "a176", - "a177", - "a178", - "a179", - "a193", - "a180", - "a199", - "a181", - "a200", - "a182", - null, - "a201", - "a183", - "a184", - "a197", - "a185", - "a194", - "a198", - "a186", - "a195", - "a187", - "a188", - "a189", - "a190", - "a191", - null - ] -}; - diff --git a/fonts.js b/fonts.js index b9ef5b330..be4007d24 100644 --- a/fonts.js +++ b/fonts.js @@ -1076,6 +1076,64 @@ var Type1Parser = function() { } }; +const CFFStrings = [ + ".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand", + "quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period", + "slash","zero","one","two","three","four","five","six","seven","eight","nine", + "colon","semicolon","less","equal","greater","question","at","A","B","C","D","E", + "F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y", + "Z","bracketleft","backslash","bracketright","asciicircum","underscore", + "quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q", + "r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde", + "exclamdown","cent","sterling","fraction","yen","florin","section","currency", + "quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright", + "fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet", + "quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis", + "perthousand","questiondown","grave","acute","circumflex","tilde","macron", + "breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron", + "emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi", + "lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark", + "Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree", + "thorn","threequarters","twosuperior","registered","minus","eth","multiply", + "threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring", + "Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute", + "Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis", + "Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute", + "Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde", + "ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex", + "idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve", + "otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute", + "ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle", + "dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior", + "parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle", + "twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle", + "sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior", + "threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior", + "centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior", + "nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl", + "parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior", + "Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall", + "Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall", + "Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall", + "Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall", + "centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall", + "Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash", + "hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall", + "oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds", + "zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior", + "eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior", + "threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior", + "eightinferior","nineinferior","centinferior","dollarinferior","periodinferior", + "commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall", + "Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall", + "Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall", + "Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall", + "Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall", + "Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall", + "Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002", + "001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold" +]; + /** * Take a Type1 file as input and wrap it into a Compact Font Format (CFF) * wrapping Type2 charstrings. diff --git a/glyphlist.js b/glyphlist.js index f5a11b522..1a0190133 100644 --- a/glyphlist.js +++ b/glyphlist.js @@ -4282,8 +4282,8 @@ var GlyphsUnicode = { zukatakana: 0x30BA }; -// Add missing glyphs from the original Adobe's list -GlyphsUnicode["angbracketleft"] = 0x3008; -GlyphsUnicode["angbracketright"] = 0x3009; -GlyphsUnicode["circlecopyrt"] = 0x00A9; +// Add missing glyphs from the Adobe's original list +GlyphsUnicode.angbracketleft = 0x3008; +GlyphsUnicode.angbracketright = 0x3009; +GlyphsUnicode.circlecopyrt = 0x00A9; diff --git a/pdf.js b/pdf.js index 20a91d9af..6794f3589 100644 --- a/pdf.js +++ b/pdf.js @@ -1615,6 +1615,180 @@ var CanvasExtraState = (function() { return constructor; })(); +const Encodings = { + get ExpertEncoding() { + return shadow(this, "ExpertEncoding", [ + "space","exclamsmall","Hungarumlautsmall",,"dollaroldstyle","dollarsuperior", + "ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior", + "twodotenleader","onedotenleader","comma","hyphen","period","fraction", + "zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle", + "fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle", + "colon","semicolon","commasuperior","threequartersemdash","periodsuperior", + "questionsmall",,"asuperior","bsuperior","centsuperior","dsuperior","esuperior",,, + "isuperior",,,"lsuperior","msuperior","nsuperior","osuperior",,,"rsuperior", + "ssuperior","tsuperior",,"ff","fi","fl","ffi","ffl","parenleftinferior",, + "parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall", + "Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall", + "Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall", + "Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary", + "onefitted","rupiah","Tildesmall",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, + "exclamdownsmall","centoldstyle","Lslashsmall",,,"Scaronsmall","Zcaronsmall", + "Dieresissmall","Brevesmall","Caronsmall",,"Dotaccentsmall",,,"Macronsmall",,, + "figuredash","hypheninferior",,,"Ogoneksmall","Ringsmall","Cedillasmall",,,, + "onequarter","onehalf","threequarters","questiondownsmall","oneeighth", + "threeeighths","fiveeighths","seveneighths","onethird","twothirds",,, + "zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior", + "fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior", + "zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior", + "fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior", + "centinferior","dollarinferior","periodinferior","commainferior","Agravesmall", + "Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall", + "AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall", + "Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall", + "Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall", + "Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall", + "Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall", + "Ydieresissmall" + ]); + }, + get MacExpertEncoding() { + return shadow(this, "MacExpertEncoding", [ + "space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle", + "dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior", + "parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period", + "fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle", + "fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle", + "nineoldstyle","colon","semicolon",,"threequartersemdash",,"questionsmall",,,,, + "Ethsmall",,,"onequarter","onehalf","threequarters","oneeighth","threeeighths", + "fiveeighths","seveneighths","onethird","twothirds",,,,,,,"ff","fi","fl","ffi", + "ffl","parenleftinferior",,"parenrightinferior","Circumflexsmall", + "hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall", + "Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall", + "Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall", + "Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall",,, + "asuperior","centsuperior",,,,,"Aacutesmall","Agravesmall","Acircumflexsmall", + "Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall", + "Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall", + "Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall", + "Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall", + "Ucircumflexsmall","Udieresissmall",,"eightsuperior","fourinferior", + "threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall",, + "centinferior","twoinferior",,"Dieresissmall",,"Caronsmall","osuperior", + "fiveinferior",,"commainferior","periodinferior","Yacutesmall",,"dollarinferior",, + "Thornsmall",,"nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall", + "questiondownsmall","oneinferior","Lslashsmall",,,,,,,"Cedillasmall",,,,,, + "OEsmall","figuredash","hyphensuperior",,,,,"exclamdownsmall",,"Ydieresissmall",, + "onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior", + "sixsuperior","sevensuperior","ninesuperior","zerosuperior",,"esuperior", + "rsuperior","tsuperior",,,"isuperior","ssuperior","dsuperior",,,,,,"lsuperior", + "Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior", + "commasuperior","periodsuperior","Dotaccentsmall","Ringsmall",,, + ]); + }, + get MacRomanEncoding() { + return shadow(this, "MacRomanEncoding", [ + "space","exclam","quotedbl","numbersign","dollar","percent","ampersand", + "quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen", + "period","slash","zero","one","two","three","four","five","six","seven","eight", + "nine","colon","semicolon","less","equal","greater","question","at","A","B","C", + "D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W", + "X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore", + "grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r", + "s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde",, + "Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute", + "agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave", + "ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde", + "oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave", + "ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet", + "paragraph","germandbls","registered","copyright","trademark","acute","dieresis", + "notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen", + "mu","partialdiff","summation","product","pi","integral","ordfeminine", + "ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot", + "radical","florin","approxequal","Delta","guillemotleft","guillemotright", + "ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash", + "quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge", + "ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright", + "fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase", + "perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute", + "Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve", + "Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve", + "dotaccent","ring","cedilla","hungarumlaut","ogonek","caron" + ]); + }, + get StandardEncoding() { + return shadow(this, "StandardEncoding", [ + "space","exclam","quotedbl","numbersign","dollar","percent","ampersand", + "quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period", + "slash","zero","one","two","three","four","five","six","seven","eight","nine", + "colon","semicolon","less","equal","greater","question","at","A","B","C","D","E", + "F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y", + "Z","bracketleft","backslash","bracketright","asciicircum","underscore", + "quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q", + "r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde",,, + "exclamdown","cent","sterling","fraction","yen","florin","section","currency", + "quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright", + "fi","fl",,"endash","dagger","daggerdbl","periodcentered",,"paragraph","bullet", + "quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis", + "perthousand",,"questiondown",,"grave","acute","circumflex","tilde","macron", + "breve","dotaccent","dieresis",,"ring","cedilla",,"hungarumlaut","ogonek","caron", + "emdash",,,,,,,,,,,,,,,,,"AE",,"ordfeminine",,,,,"Lslash","Oslash","OE", + "ordmasculine",,,,,,"ae",,,,"dotlessi",,,"lslash","oslash","oe","germandbls",,, + ]); + }, + get WinAnsiEncoding() { + return shadow(this, "WinAnsiEncoding", [ + "space","exclam","quotedbl","numbersign","dollar","percent","ampersand", + "quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen", + "period","slash","zero","one","two","three","four","five","six","seven","eight", + "nine","colon","semicolon","less","equal","greater","question","at","A","B","C", + "D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W", + "X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore", + "grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r", + "s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde", + "bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis", + "dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE", + "bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft", + "quotedblright","bullet","endash","emdash","tilde","trademark","scaron", + "guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent", + "sterling","currency","yen","brokenbar","section","dieresis","copyright", + "ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron", + "degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph", + "periodcentered","cedilla","onesuperior","ordmasculine","guillemotright", + "onequarter","onehalf","threequarters","questiondown","Agrave","Aacute", + "Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute", + "Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth", + "Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash", + "Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls", + "agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla", + "egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex", + "idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis", + "divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn", + "ydieresis" + ]); + }, + get zapfDingbatsEncoding() { + return shadow(this, "zapfDingbatsEncoding", [ + "space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13", + "a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25", + "a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34", + "a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47", + "a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60", + "a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73", + "a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97", + "a98","a99","a100",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"a101","a102","a103","a104", + "a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123", + "a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134", + "a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145", + "a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156", + "a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166", + "a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176", + "a177","a178","a179","a193","a180","a199","a181","a200","a182",,"a201","a183", + "a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190", + "a191" + ]); + } +}; + var CanvasGraphics = (function() { function constructor(canvasCtx) { this.ctx = canvasCtx; @@ -1726,12 +1900,14 @@ var CanvasGraphics = (function() { constructor.prototype = { translateFont: function(fontDict, xref, resources) { var descriptor = xref.fetch(fontDict.get("FontDescriptor")); - var fontName = descriptor.get("FontName").name; - fontName = fontName.replace("+", "_"); + + var fontName = descriptor.get("FontName"); + assertWellFormed(IsName(fontName), "invalid font name"); + fontName = fontName.name.replace("+", "_"); var fontFile = descriptor.get2("FontFile", "FontFile2"); if (!fontFile) - errort("FontFile not found for font: " + fontName); + error("FontFile not found for font: " + fontName); fontFile = xref.fetchIfRef(fontFile); // Generate the custom cmap of the font if needed @@ -1749,36 +1925,42 @@ var CanvasGraphics = (function() { // Get the font charset if any var charset = descriptor.get("CharSet"); - if (charset) - charset = charset.split("/"); + assertWellFormed(IsString(charset), "invalid charset"); + charset = charset.split("/"); } else if (IsName(encoding)) { - var encoding = Encodings[encoding]; - var widths = xref.fetchIfRef(fontDict.get("Widths")); - var firstchar = xref.fetchIfRef(fontDict.get("FirstChar")); + var encoding = Encodings[encoding.name]; + if (!encoding) + error("Unknown font encoding"); + var widths = xref.fetchIfRef(fontDict.get("Widths")); + var firstChar = xref.fetchIfRef(fontDict.get("FirstChar")); + assertWellFormed(IsArray(widths) && IsInteger(firstChar), + "invalid font Widths or FirstChar"); var charset = []; for (var j = 0; j < widths.length; j++) { - var index = widths[j]; - if (!index) - continue; - - charset.push(encoding[j + firstchar]); + if (widths[j]) + charset.push(encoding[j + firstChar]); } } } + var subType = fontDict.get("Subtype"); + var bbox = descriptor.get("FontBBox"); + assertWellFormed(IsName(subType) && IsArray(bbox), + "invalid font Subtype or FontBBox"); + var properties = { - type: fontDict.get("Subtype").name, + type: subType.name, encoding: encodingMap, charset: charset, - bbox: descriptor.get("FontBBox") + bbox: bbox }; return { name: fontName, - file: fontFile, - properties: properties + file: fontFile, + properties: properties } }, diff --git a/cffStandardStrings.js b/utils/cffStandardStrings.js similarity index 100% rename from cffStandardStrings.js rename to utils/cffStandardStrings.js diff --git a/fonts_utils.js b/utils/fonts_utils.js similarity index 100% rename from fonts_utils.js rename to utils/fonts_utils.js diff --git a/test.css b/viewer.css similarity index 100% rename from test.css rename to viewer.css diff --git a/test.html b/viewer.html similarity index 81% rename from test.html rename to viewer.html index 458c50268..6e733319e 100644 --- a/test.html +++ b/viewer.html @@ -1,13 +1,11 @@