Fixing TrueType code-glyph assigmnent to pass sanitizer
This commit is contained in:
parent
cb592d6e51
commit
18db087f79
17
src/fonts.js
17
src/fonts.js
@ -1765,7 +1765,7 @@ var Font = (function Font() {
|
|||||||
var hasShortCmap = !!cmapTable.hasShortCmap;
|
var hasShortCmap = !!cmapTable.hasShortCmap;
|
||||||
var toUnicode = this.toUnicode;
|
var toUnicode = this.toUnicode;
|
||||||
|
|
||||||
if (toUnicode) {
|
if (toUnicode && toUnicode.length > 0) {
|
||||||
// checking if cmap is just identity map
|
// checking if cmap is just identity map
|
||||||
var isIdentity = true;
|
var isIdentity = true;
|
||||||
for (var i = 0, ii = glyphs.length; i < ii; i++) {
|
for (var i = 0, ii = glyphs.length; i < ii; i++) {
|
||||||
@ -1776,9 +1776,22 @@ var Font = (function Font() {
|
|||||||
}
|
}
|
||||||
// if it is, replacing with meaningful toUnicode values
|
// if it is, replacing with meaningful toUnicode values
|
||||||
if (isIdentity) {
|
if (isIdentity) {
|
||||||
|
var usedUnicodes = [], unassignedUnicodeItems = [];
|
||||||
for (var i = 0, ii = glyphs.length; i < ii; i++) {
|
for (var i = 0, ii = glyphs.length; i < ii; i++) {
|
||||||
var unicode = toUnicode[i + 1] || i + 1;
|
var unicode = toUnicode[i + 1];
|
||||||
|
if (!unicode || usedUnicodes[unicode]) {
|
||||||
|
unassignedUnicodeItems.push(i);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
glyphs[i].unicode = unicode;
|
glyphs[i].unicode = unicode;
|
||||||
|
usedUnicodes[unicode] = true;
|
||||||
|
}
|
||||||
|
var unusedUnicode = kCmapGlyphOffset;
|
||||||
|
for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) {
|
||||||
|
var i = unassignedUnicodeItems[j];
|
||||||
|
while (usedUnicodes[unusedUnicode])
|
||||||
|
unusedUnicode++;
|
||||||
|
glyphs[i].unicode = unusedUnicode++;
|
||||||
}
|
}
|
||||||
this.useToUnicode = true;
|
this.useToUnicode = true;
|
||||||
}
|
}
|
||||||
|
1
test/pdfs/lista_preliminar.pdf.link
Normal file
1
test/pdfs/lista_preliminar.pdf.link
Normal file
@ -0,0 +1 @@
|
|||||||
|
http://www.lfg.com.br/concursodebolsas/lista_preliminar_classificao.pdf
|
@ -311,5 +311,13 @@
|
|||||||
"pageLimit": 5,
|
"pageLimit": 5,
|
||||||
"skipPages": [1],
|
"skipPages": [1],
|
||||||
"type": "eq"
|
"type": "eq"
|
||||||
|
},
|
||||||
|
{ "id": "lista_preliminar",
|
||||||
|
"file": "pdfs/lista_preliminar.pdf",
|
||||||
|
"md5": "4eff251319eeb660ba8a7a5cfac7787d",
|
||||||
|
"rounds": 1,
|
||||||
|
"link": true,
|
||||||
|
"pageLimit": 3,
|
||||||
|
"type": "eq"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user