mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-22 16:18:08 +02:00
Support cmaps with only CID characters, when building the ToUnicode-map (issue 9367)
In this particular case the `CMap`-data that we create contains only numbers, but no strings, which causes `PartialEvaluator.readToUnicode` to create a ToUnicode-map with only empty strings. *Please note:* This is yet another case where I don't know if it's necessarily the best and most correct solution, but it does fix the referenced issue.
This commit is contained in:
parent
7082ff9bf8
commit
ed73cf6d50
3 changed files with 14 additions and 0 deletions
|
@ -3455,6 +3455,11 @@ class PartialEvaluator {
|
|||
// NOTE: cmap can be a sparse array, so use forEach instead of
|
||||
// `for(;;)` to iterate over all keys.
|
||||
cmap.forEach(function (charCode, token) {
|
||||
// Some cmaps contain *only* CID characters (fixes issue9367.pdf).
|
||||
if (typeof token === "number") {
|
||||
map[charCode] = String.fromCodePoint(token);
|
||||
return;
|
||||
}
|
||||
const str = [];
|
||||
for (let k = 0; k < token.length; k += 2) {
|
||||
const w1 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue