Use CMap in Type0 fonts when CFF is not a CID font

This commit is contained in:
Jani Pehkonen 2019-03-26 19:38:44 +02:00
parent 9b5a937f78
commit 49c6233fbc
4 changed files with 11 additions and 2 deletions

View File

@ -3438,19 +3438,21 @@ var CFFFont = (function CFFFontClosure() {
if (properties.composite) {
charCodeToGlyphId = Object.create(null);
let charCode;
if (cff.isCIDFont) {
// If the font is actually a CID font then we should use the charset
// to map CIDs to GIDs.
for (glyphId = 0; glyphId < charsets.length; glyphId++) {
var cid = charsets[glyphId];
var charCode = properties.cMap.charCodeOf(cid);
charCode = properties.cMap.charCodeOf(cid);
charCodeToGlyphId[charCode] = glyphId;
}
} else {
// If it is NOT actually a CID font then CIDs should be mapped
// directly to GIDs.
for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {
charCodeToGlyphId[glyphId] = glyphId;
charCode = properties.cMap.charCodeOf(glyphId);
charCodeToGlyphId[charCode] = glyphId;
}
}
return charCodeToGlyphId;

View File

@ -241,6 +241,7 @@
!bug1151216.pdf
!bug1175962.pdf
!bug1020226.pdf
!issue9534_reduced.pdf
!basicapi.pdf
!issue2884_reduced.pdf
!mixedfonts.pdf

Binary file not shown.

View File

@ -2718,6 +2718,12 @@
"link": true,
"type": "eq"
},
{ "id": "issue9534_reduced",
"file": "pdfs/issue9534_reduced.pdf",
"md5": "f9a47805555de5bc0f9f5f5188df6bad",
"rounds": 1,
"type": "eq"
},
{ "id": "issue1233",
"file": "pdfs/issue1233.pdf",
"md5": "2d3565b0a286e29955796c37c66326c1",