Adjust the heuristics to recognize more cases of unknown glyphs for |toUnicode| (issue 5070)
This commit is contained in:
parent
b918df3547
commit
8ecbb4da05
@ -4300,6 +4300,7 @@ var Font = (function FontClosure() {
|
|||||||
if (!properties.composite /* is simple font */) {
|
if (!properties.composite /* is simple font */) {
|
||||||
toUnicode = [];
|
toUnicode = [];
|
||||||
var encoding = properties.defaultEncoding.slice();
|
var encoding = properties.defaultEncoding.slice();
|
||||||
|
var baseEncodingName = properties.baseEncodingName;
|
||||||
// Merge in the differences array.
|
// Merge in the differences array.
|
||||||
var differences = properties.differences;
|
var differences = properties.differences;
|
||||||
for (charcode in differences) {
|
for (charcode in differences) {
|
||||||
@ -4328,12 +4329,25 @@ var Font = (function FontClosure() {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'C': // Cddd glyph
|
case 'C': // Cddd glyph
|
||||||
|
case 'c': // cddd glyph
|
||||||
if (glyphName.length >= 3) {
|
if (glyphName.length >= 3) {
|
||||||
code = +glyphName.substr(1);
|
code = +glyphName.substr(1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (code) {
|
if (code) {
|
||||||
|
// If |baseEncodingName| is one the predefined encodings,
|
||||||
|
// and |code| equals |charcode|, using the glyph defined in the
|
||||||
|
// baseEncoding seems to yield a better |toUnicode| mapping
|
||||||
|
// (fixes issue 5070).
|
||||||
|
if (baseEncodingName && code === +charcode) {
|
||||||
|
var baseEncoding = Encodings[baseEncodingName];
|
||||||
|
if (baseEncoding && (glyphName = baseEncoding[charcode])) {
|
||||||
|
toUnicode[charcode] =
|
||||||
|
String.fromCharCode(GlyphsUnicode[glyphName]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
toUnicode[charcode] = String.fromCharCode(code);
|
toUnicode[charcode] = String.fromCharCode(code);
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -56,6 +56,7 @@
|
|||||||
!issue925.pdf
|
!issue925.pdf
|
||||||
!issue4668.pdf
|
!issue4668.pdf
|
||||||
!issue5039.pdf
|
!issue5039.pdf
|
||||||
|
!issue5070.pdf
|
||||||
!gradientfill.pdf
|
!gradientfill.pdf
|
||||||
!bug903856.pdf
|
!bug903856.pdf
|
||||||
!bug850854.pdf
|
!bug850854.pdf
|
||||||
|
BIN
test/pdfs/issue5070.pdf
Normal file
BIN
test/pdfs/issue5070.pdf
Normal file
Binary file not shown.
@ -1067,6 +1067,13 @@
|
|||||||
"rounds": 1,
|
"rounds": 1,
|
||||||
"type": "eq"
|
"type": "eq"
|
||||||
},
|
},
|
||||||
|
{ "id": "issue5070",
|
||||||
|
"file": "pdfs/issue5070.pdf",
|
||||||
|
"md5": "ec2ca0b4954c8390a5b3b0ffd79a8e92",
|
||||||
|
"link": false,
|
||||||
|
"rounds": 1,
|
||||||
|
"type": "eq"
|
||||||
|
},
|
||||||
{ "id": "issue1257",
|
{ "id": "issue1257",
|
||||||
"file": "pdfs/issue1257.pdf",
|
"file": "pdfs/issue1257.pdf",
|
||||||
"md5": "9111533826bc21ed774e8e01603a2f54",
|
"md5": "9111533826bc21ed774e8e01603a2f54",
|
||||||
|
Loading…
Reference in New Issue
Block a user