[Pkg-javascript-commits] [pdf.js] 29/204: Add basic support for ZapfDingbats
David Prévot
taffit at moszumanska.debian.org
Sat Oct 25 18:50:27 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository pdf.js.
commit 4bda6ba1b8180b07508e06be644035ccb625acbc
Author: Jonas Jenwald <jonas.jenwald at gmail.com>
Date: Mon Sep 1 03:22:24 2014 +0200
Add basic support for ZapfDingbats
---
src/core/evaluator.js | 11 ++-
src/core/fonts.js | 50 +++++++-----
src/core/glyphlist.js | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 246 insertions(+), 20 deletions(-)
diff --git a/src/core/evaluator.js b/src/core/evaluator.js
index e48348d..753d248 100644
--- a/src/core/evaluator.js
+++ b/src/core/evaluator.js
@@ -1306,9 +1306,14 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// The Symbolic attribute can be misused for regular fonts
// Heuristic: we have to check if the font is a standard one also
if (!!(properties.flags & FontFlags.Symbolic)) {
- encoding = (!properties.file && /Symbol/i.test(properties.name) ?
- Encodings.SymbolSetEncoding :
- Encodings.MacRomanEncoding);
+ encoding = Encodings.MacRomanEncoding;
+ if (!properties.file) {
+ if (/Symbol/i.test(properties.name)) {
+ encoding = Encodings.SymbolSetEncoding;
+ } else if (/Dingbats/i.test(properties.name)) {
+ encoding = Encodings.ZapfDingbatsEncoding;
+ }
+ }
}
properties.defaultEncoding = encoding;
}
diff --git a/src/core/fonts.js b/src/core/fonts.js
index c30285f..d0df950 100644
--- a/src/core/fonts.js
+++ b/src/core/fonts.js
@@ -18,7 +18,7 @@
readUint32, Stream, FontRendererFactory, shadow, stringToBytes,
bytesToString, info, assert, IdentityCMap, Name, CMapFactory, PDFJS,
isNum, Lexer, isArray, ISOAdobeCharset, ExpertCharset,
- ExpertSubsetCharset, Util */
+ ExpertSubsetCharset, Util, DingbatsGlyphsUnicode */
'use strict';
@@ -262,7 +262,7 @@ var Encodings = {
'parenrighttp', 'parenrightex', 'parenrightbt', 'bracketrighttp',
'bracketrightex', 'bracketrightbt', 'bracerighttp', 'bracerightmid',
'bracerightbt'],
- zapfDingbatsEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '',
+ ZapfDingbatsEncoding: ['', '', '', '', '', '', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
'space', 'a1', 'a2', 'a202', 'a3', 'a4', 'a5', 'a119', 'a118', 'a117',
'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a105', 'a17', 'a18', 'a19',
@@ -273,19 +273,19 @@ var Encodings = {
'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']
+ 'a98', 'a99', 'a100', '', 'a89', 'a90', 'a93', 'a94', 'a91', 'a92', 'a205',
+ 'a85', 'a206', 'a86', 'a87', 'a88', 'a95', 'a96', '', '', '', '', '', '',
+ '', '', '', '', '', '', '', '', '', '', '', '', '', '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']
};
/**
@@ -2374,7 +2374,7 @@ var OpenTypeFileBuilder = (function OpenTypeFileBuilderClosure() {
*/
var Font = (function FontClosure() {
function Font(name, file, properties) {
- var charCode, glyphName;
+ var charCode, glyphName, fontChar;
this.name = name;
this.loadedName = properties.loadedName;
@@ -2464,7 +2464,23 @@ var Font = (function FontClosure() {
} else if (/Symbol/i.test(fontName)) {
var symbols = Encodings.SymbolSetEncoding;
for (charCode in symbols) {
- var fontChar = GlyphsUnicode[symbols[charCode]];
+ fontChar = GlyphsUnicode[symbols[charCode]];
+ if (!fontChar) {
+ continue;
+ }
+ this.toFontChar[charCode] = fontChar;
+ }
+ } else if (/Dingbats/i.test(fontName)) {
+ var dingbats = Encodings.ZapfDingbatsEncoding;
+ for (charCode in dingbats) {
+ fontChar = DingbatsGlyphsUnicode[dingbats[charCode]];
+ if (!fontChar) {
+ continue;
+ }
+ this.toFontChar[charCode] = fontChar;
+ }
+ for (charCode in properties.differences) {
+ fontChar = DingbatsGlyphsUnicode[properties.differences[charCode]];
if (!fontChar) {
continue;
}
diff --git a/src/core/glyphlist.js b/src/core/glyphlist.js
index cd31a9f..b2752c5 100644
--- a/src/core/glyphlist.js
+++ b/src/core/glyphlist.js
@@ -4224,3 +4224,208 @@ var GlyphsUnicode = {
'.notdef': 0x0000
};
+var DingbatsGlyphsUnicode = {
+ space: 0x0020,
+ a1: 0x2701,
+ a2: 0x2702,
+ a202: 0x2703,
+ a3: 0x2704,
+ a4: 0x260E,
+ a5: 0x2706,
+ a119: 0x2707,
+ a118: 0x2708,
+ a117: 0x2709,
+ a11: 0x261B,
+ a12: 0x261E,
+ a13: 0x270C,
+ a14: 0x270D,
+ a15: 0x270E,
+ a16: 0x270F,
+ a105: 0x2710,
+ a17: 0x2711,
+ a18: 0x2712,
+ a19: 0x2713,
+ a20: 0x2714,
+ a21: 0x2715,
+ a22: 0x2716,
+ a23: 0x2717,
+ a24: 0x2718,
+ a25: 0x2719,
+ a26: 0x271A,
+ a27: 0x271B,
+ a28: 0x271C,
+ a6: 0x271D,
+ a7: 0x271E,
+ a8: 0x271F,
+ a9: 0x2720,
+ a10: 0x2721,
+ a29: 0x2722,
+ a30: 0x2723,
+ a31: 0x2724,
+ a32: 0x2725,
+ a33: 0x2726,
+ a34: 0x2727,
+ a35: 0x2605,
+ a36: 0x2729,
+ a37: 0x272A,
+ a38: 0x272B,
+ a39: 0x272C,
+ a40: 0x272D,
+ a41: 0x272E,
+ a42: 0x272F,
+ a43: 0x2730,
+ a44: 0x2731,
+ a45: 0x2732,
+ a46: 0x2733,
+ a47: 0x2734,
+ a48: 0x2735,
+ a49: 0x2736,
+ a50: 0x2737,
+ a51: 0x2738,
+ a52: 0x2739,
+ a53: 0x273A,
+ a54: 0x273B,
+ a55: 0x273C,
+ a56: 0x273D,
+ a57: 0x273E,
+ a58: 0x273F,
+ a59: 0x2740,
+ a60: 0x2741,
+ a61: 0x2742,
+ a62: 0x2743,
+ a63: 0x2744,
+ a64: 0x2745,
+ a65: 0x2746,
+ a66: 0x2747,
+ a67: 0x2748,
+ a68: 0x2749,
+ a69: 0x274A,
+ a70: 0x274B,
+ a71: 0x25CF,
+ a72: 0x274D,
+ a73: 0x25A0,
+ a74: 0x274F,
+ a203: 0x2750,
+ a75: 0x2751,
+ a204: 0x2752,
+ a76: 0x25B2,
+ a77: 0x25BC,
+ a78: 0x25C6,
+ a79: 0x2756,
+ a81: 0x25D7,
+ a82: 0x2758,
+ a83: 0x2759,
+ a84: 0x275A,
+ a97: 0x275B,
+ a98: 0x275C,
+ a99: 0x275D,
+ a100: 0x275E,
+ a101: 0x2761,
+ a102: 0x2762,
+ a103: 0x2763,
+ a104: 0x2764,
+ a106: 0x2765,
+ a107: 0x2766,
+ a108: 0x2767,
+ a112: 0x2663,
+ a111: 0x2666,
+ a110: 0x2665,
+ a109: 0x2660,
+ a120: 0x2460,
+ a121: 0x2461,
+ a122: 0x2462,
+ a123: 0x2463,
+ a124: 0x2464,
+ a125: 0x2465,
+ a126: 0x2466,
+ a127: 0x2467,
+ a128: 0x2468,
+ a129: 0x2469,
+ a130: 0x2776,
+ a131: 0x2777,
+ a132: 0x2778,
+ a133: 0x2779,
+ a134: 0x277A,
+ a135: 0x277B,
+ a136: 0x277C,
+ a137: 0x277D,
+ a138: 0x277E,
+ a139: 0x277F,
+ a140: 0x2780,
+ a141: 0x2781,
+ a142: 0x2782,
+ a143: 0x2783,
+ a144: 0x2784,
+ a145: 0x2785,
+ a146: 0x2786,
+ a147: 0x2787,
+ a148: 0x2788,
+ a149: 0x2789,
+ a150: 0x278A,
+ a151: 0x278B,
+ a152: 0x278C,
+ a153: 0x278D,
+ a154: 0x278E,
+ a155: 0x278F,
+ a156: 0x2790,
+ a157: 0x2791,
+ a158: 0x2792,
+ a159: 0x2793,
+ a160: 0x2794,
+ a161: 0x2192,
+ a163: 0x2194,
+ a164: 0x2195,
+ a196: 0x2798,
+ a165: 0x2799,
+ a192: 0x279A,
+ a166: 0x279B,
+ a167: 0x279C,
+ a168: 0x279D,
+ a169: 0x279E,
+ a170: 0x279F,
+ a171: 0x27A0,
+ a172: 0x27A1,
+ a173: 0x27A2,
+ a162: 0x27A3,
+ a174: 0x27A4,
+ a175: 0x27A5,
+ a176: 0x27A6,
+ a177: 0x27A7,
+ a178: 0x27A8,
+ a179: 0x27A9,
+ a193: 0x27AA,
+ a180: 0x27AB,
+ a199: 0x27AC,
+ a181: 0x27AD,
+ a200: 0x27AE,
+ a182: 0x27AF,
+ a201: 0x27B1,
+ a183: 0x27B2,
+ a184: 0x27B3,
+ a197: 0x27B4,
+ a185: 0x27B5,
+ a194: 0x27B6,
+ a198: 0x27B7,
+ a186: 0x27B8,
+ a195: 0x27B9,
+ a187: 0x27BA,
+ a188: 0x27BB,
+ a189: 0x27BC,
+ a190: 0x27BD,
+ a191: 0x27BE,
+ a89: 0x2768, // 0xF8D7
+ a90: 0x2769, // 0xF8D8
+ a93: 0x276A, // 0xF8D9
+ a94: 0x276B, // 0xF8DA
+ a91: 0x276C, // 0xF8DB
+ a92: 0x276D, // 0xF8DC
+ a205: 0x276E, // 0xF8DD
+ a85: 0x276F, // 0xF8DE
+ a206: 0x2770, // 0xF8DF
+ a86: 0x2771, // 0xF8E0
+ a87: 0x2772, // 0xF8E1
+ a88: 0x2773, // 0xF8E2
+ a95: 0x2774, // 0xF8E3
+ a96: 0x2775, // 0xF8E4
+ '.notdef': 0x0000
+};
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git
More information about the Pkg-javascript-commits
mailing list