Browse Source

Merge pull request #2244 from yurydelendik/issue-2074

Fixes cmap when 0xFFFF character is included
Brendan Dahl 13 years ago
parent
commit
d76f4d735f
  1. 17
      src/fonts.js
  2. 1
      test/pdfs/.gitignore
  3. BIN
      test/pdfs/issue2074.pdf
  4. 6
      test/test_manifest.json

17
src/fonts.js

@ -2498,7 +2498,8 @@ var Font = (function FontClosure() { @@ -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() { @@ -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() { @@ -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() { @@ -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

@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
!devicen.pdf
!cmykjpeg.pdf
!issue840.pdf
!issue2074.pdf
!scan-bad.pdf
!pdfjsbad1586.pdf
!freeculture.pdf

BIN
test/pdfs/issue2074.pdf

Binary file not shown.

6
test/test_manifest.json

@ -706,6 +706,12 @@ @@ -706,6 +706,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…
Cancel
Save