Check that TrueType (3, 0) cmap tables, for symbolic fonts, are sorted correctly (issue 13626)
According to a comment in `readCmapTable`, we're assuming that the cmap tables (when more than one exist) are sorted in ascending order. If that's not the case, keep checking the following cmap tables in order to fix the referenced issue.
This commit is contained in:
parent
dc7faa213e
commit
185be678ec
@ -1372,7 +1372,18 @@ class Font {
|
||||
}
|
||||
} else if (isSymbolicFont && platformId === 3 && encodingId === 0) {
|
||||
useTable = true;
|
||||
canBreak = true;
|
||||
|
||||
let correctlySorted = true;
|
||||
if (i < numTables - 1) {
|
||||
const nextBytes = file.peekBytes(2),
|
||||
nextPlatformId = int16(nextBytes[0], nextBytes[1]);
|
||||
if (nextPlatformId < platformId) {
|
||||
correctlySorted = false;
|
||||
}
|
||||
}
|
||||
if (correctlySorted) {
|
||||
canBreak = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (useTable) {
|
||||
|
1
test/pdfs/issue13626.pdf.link
Normal file
1
test/pdfs/issue13626.pdf.link
Normal file
@ -0,0 +1 @@
|
||||
https://github.com/mozilla/pdf.js/files/6715502/test.pdf
|
@ -1635,6 +1635,13 @@
|
||||
"rounds": 1,
|
||||
"type": "eq"
|
||||
},
|
||||
{ "id": "issue13626",
|
||||
"file": "pdfs/issue13626.pdf",
|
||||
"md5": "68bc1c2459d56e8c33f5a12a88c9df7d",
|
||||
"link": true,
|
||||
"rounds": 1,
|
||||
"type": "eq"
|
||||
},
|
||||
{ "id": "simpletype3font-text",
|
||||
"file": "pdfs/simpletype3font.pdf",
|
||||
"md5": "b374c7543920840c61999e9e86939f99",
|
||||
|
Loading…
Reference in New Issue
Block a user