Add Hankaku-Latin cid to Unicode mappings
This commit is contained in:
parent
7bd8887860
commit
a8aed74431
@ -28,7 +28,8 @@ var CIDToUnicodeMaps = {
|
||||
174, 0, 0, {f: 2, c: 178}, 181, 185, {f: 3, c: 188}, {f: 6, c: 192},
|
||||
{f: 16, c: 199}, 0, {f: 6, c: 217}, {f: 6, c: 224}, {f: 16, c: 231}, 0,
|
||||
{f: 7, c: 249}, 352, 376, 381, [773, 8254], 353, 8482, 382, 0, 8194,
|
||||
{s: 91}, 65512, {s: 3}, {f: 63, c: 65377}, {s: 243}, [8195, 12288],
|
||||
{f: 59, c: 33}, 165, {f: 31, c: 93}, 65512, {f: 2, c: 125}, 0,
|
||||
{f: 63, c: 65377}, {s: 243}, [8195, 12288],
|
||||
{f: 2, c: 12289}, 65292, 65294, 12539, {f: 2, c: 65306}, 65311, 65281,
|
||||
{f: 2, c: 12443}, 180, 65344, 168, 65342, 65507, 65343, {f: 2, c: 12541},
|
||||
{f: 2, c: 12445}, 12291, 20189, {f: 3, c: 12293}, 12540, 8213, 8208, 65295,
|
||||
@ -780,9 +781,9 @@ var CIDToUnicodeMaps = {
|
||||
37854, 37880, 37937, 37957, 37960, 38290, 0, 64041, 38557, 38575, 38707,
|
||||
38715, 38723, 38733, 38735, [12205, 38737], 0, 38999, 39013,
|
||||
{f: 2, c: 64042}, 39207, 64044, 39326, 39502, 39641, 39644, 39797, 39794,
|
||||
39823, 39857, 39867, 39936, 40304, 40299, 64045, 40473, 40657, {s: 636},
|
||||
8364, 8486, 0, 0, 64256, {f: 2, c: 64259}, 257, 299, 363, 275, 333, 256,
|
||||
298, 362, 274, 332, {f: 4, c: 8539}, {f: 2, c: 8531}, 8304,
|
||||
39823, 39857, 39867, 39936, 40304, 40299, 64045, 40473, 40657, 0, 92,
|
||||
{s: 634}, 8364, 8486, 0, 0, 64256, {f: 2, c: 64259}, 257, 299, 363, 275,
|
||||
333, 256, 298, 362, 274, 332, {f: 4, c: 8539}, {f: 2, c: 8531}, 8304,
|
||||
{f: 6, c: 8308}, {f: 10, c: 8320}, 461, 282, 0, 7868, 463, 0, 296, 465, 0,
|
||||
467, 366, 360, 462, 283, 0, 7869, 464, 0, 297, 466, 0, 468, 367, 361, 593,
|
||||
8049, 8048, 509, 0, 596, 0, 0, 601, 0, 0, 602, 0, 0, 603, 8051, 8050, 0,
|
||||
|
30
src/fonts.js
30
src/fonts.js
@ -413,6 +413,19 @@ var CMapConverterList = {
|
||||
'90msp-RKSJ-V': sjisToUnicode
|
||||
};
|
||||
|
||||
// CMaps using Hankaku (Halfwidth) Latin glyphs instead of proportional one.
|
||||
// We need to distinguish them to get correct widths from CIDFont dicts.
|
||||
var HalfwidthCMaps = {
|
||||
'H': true,
|
||||
'V': true,
|
||||
'EUC-H': true,
|
||||
'EUC-V': true,
|
||||
'90ms-RKSJ-H': true,
|
||||
'90ms-RKSJ-V': true,
|
||||
'UniJIS-UCS2-HW-H': true,
|
||||
'UniJIS-UCS2-HW-V': true
|
||||
};
|
||||
|
||||
var decodeBytes;
|
||||
if (typeof TextDecoder !== 'undefined') {
|
||||
decodeBytes = function(bytes, encoding) {
|
||||
@ -4141,14 +4154,18 @@ var Font = (function FontClosure() {
|
||||
if (!cidToUnicode)
|
||||
return; // identity encoding
|
||||
|
||||
var cidEncoding = properties.cidEncoding;
|
||||
var overwrite = HalfwidthCMaps[cidEncoding];
|
||||
var cid = 1, i, j, k, ii;
|
||||
for (i = 0, ii = cidToUnicode.length; i < ii; ++i) {
|
||||
var unicode = cidToUnicode[i];
|
||||
if (isArray(unicode)) {
|
||||
var length = unicode.length;
|
||||
for (j = 0; j < length; j++) {
|
||||
cidToUnicodeMap[cid] = unicode[j];
|
||||
unicodeToCIDMap[unicode[j]] = cid;
|
||||
cidToUnicodeMap[cid] = k = unicode[j];
|
||||
if (!unicodeToCIDMap[k] || overwrite) {
|
||||
unicodeToCIDMap[k] = cid;
|
||||
}
|
||||
}
|
||||
cid++;
|
||||
} else if (typeof unicode === 'object') {
|
||||
@ -4157,7 +4174,9 @@ var Font = (function FontClosure() {
|
||||
k = unicode.c;
|
||||
for (j = 0; j < fillLength; ++j) {
|
||||
cidToUnicodeMap[cid] = k;
|
||||
unicodeToCIDMap[k] = cid;
|
||||
if (!unicodeToCIDMap[k] || overwrite) {
|
||||
unicodeToCIDMap[k] = cid;
|
||||
}
|
||||
cid++;
|
||||
k++;
|
||||
}
|
||||
@ -4165,13 +4184,14 @@ var Font = (function FontClosure() {
|
||||
cid += unicode.s;
|
||||
} else if (unicode) {
|
||||
cidToUnicodeMap[cid] = unicode;
|
||||
unicodeToCIDMap[unicode] = cid;
|
||||
if (!unicodeToCIDMap[unicode] || overwrite) {
|
||||
unicodeToCIDMap[unicode] = cid;
|
||||
}
|
||||
cid++;
|
||||
} else
|
||||
cid++;
|
||||
}
|
||||
|
||||
var cidEncoding = properties.cidEncoding;
|
||||
if (!cidEncoding) {
|
||||
return;
|
||||
}
|
||||
|
Binary file not shown.
@ -833,7 +833,7 @@
|
||||
},
|
||||
{ "id": "noembed-identity-2",
|
||||
"file": "pdfs/noembed-identity-2.pdf",
|
||||
"md5": "5549571a910814a9c53a1761b27fd028",
|
||||
"md5": "13b7d9ab9579d45c10bc8d499d087f21",
|
||||
"rounds": 1,
|
||||
"type": "eq"
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user