Fixes cmap when 0xFFFF character is included
This commit is contained in:
parent
969a2010b2
commit
7ea87c875e
17
src/fonts.js
17
src/fonts.js
@ -2498,7 +2498,8 @@ var Font = (function FontClosure() {
|
||||
'\x00\x01' + // encodingID
|
||||
string32(4 + numTables * 8); // start of the table record
|
||||
|
||||
var segCount = ranges.length + 1;
|
||||
var trailingRangesCount = ranges[ranges.length - 1][1] < 0xFFFF ? 1 : 0;
|
||||
var segCount = ranges.length + trailingRangesCount;
|
||||
var segCount2 = segCount * 2;
|
||||
var searchRange = getMaxPower2(segCount) * 2;
|
||||
var searchEntry = Math.log(segCount) / Math.log(2);
|
||||
@ -2513,7 +2514,7 @@ var Font = (function FontClosure() {
|
||||
var bias = 0;
|
||||
|
||||
if (deltas) {
|
||||
for (var i = 0; i < segCount - 1; i++) {
|
||||
for (var i = 0, ii = ranges.length; i < ii; i++) {
|
||||
var range = ranges[i];
|
||||
var start = range[0];
|
||||
var end = range[1];
|
||||
@ -2530,7 +2531,7 @@ var Font = (function FontClosure() {
|
||||
glyphsIds += string16(deltas[codes[j]]);
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < segCount - 1; i++) {
|
||||
for (var i = 0, ii = ranges.length; i < ii; i++) {
|
||||
var range = ranges[i];
|
||||
var start = range[0];
|
||||
var end = range[1];
|
||||
@ -2543,10 +2544,12 @@ var Font = (function FontClosure() {
|
||||
}
|
||||
}
|
||||
|
||||
endCount += '\xFF\xFF';
|
||||
startCount += '\xFF\xFF';
|
||||
idDeltas += '\x00\x01';
|
||||
idRangeOffsets += '\x00\x00';
|
||||
if (trailingRangesCount > 0) {
|
||||
endCount += '\xFF\xFF';
|
||||
startCount += '\xFF\xFF';
|
||||
idDeltas += '\x00\x01';
|
||||
idRangeOffsets += '\x00\x00';
|
||||
}
|
||||
|
||||
var format314 = '\x00\x00' + // language
|
||||
string16(segCount2) +
|
||||
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -17,6 +17,7 @@
|
||||
!devicen.pdf
|
||||
!cmykjpeg.pdf
|
||||
!issue840.pdf
|
||||
!issue2074.pdf
|
||||
!scan-bad.pdf
|
||||
!pdfjsbad1586.pdf
|
||||
!freeculture.pdf
|
||||
|
@ -699,6 +699,12 @@
|
||||
"rounds": 1,
|
||||
"type": "load"
|
||||
},
|
||||
{ "id": "issue2074",
|
||||
"file": "pdfs/issue2074.pdf",
|
||||
"md5": "5e4ba2241fc35d20e44eb52289a569ab",
|
||||
"rounds": 1,
|
||||
"type": "eq"
|
||||
},
|
||||
{ "id": "colorkeymask",
|
||||
"file": "pdfs/colorkeymask.pdf",
|
||||
"md5": "9f11e815b485f7f0e1fa5c116c636cf9",
|
||||
|
Loading…
x
Reference in New Issue
Block a user