Browse Source

Fallback in `readCmapTable`, instead of using `error`, for TrueType fonts with unsupported cmap formats (bug 1200096)

Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1200096.

The problematic font has a `format 2` cmap, which we've never supported properly. Prior to PR 2606, we were able to fallback to a working state, despite not having proper support for that cmap format.

Obviously the best/correct solution would be to implement actual support for more cmap formats[1]. However, I'm hoping that a simple patch will be OK for now, given that:
 - `format 2` cmaps seem to be quite rare in practice, since this has been broken for 2.5 years before anyone noticed.
 - Having a simple patch will make potential uplifts a lot easier.

[1] See the specification at https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html
Jonas Jenwald 10 years ago
parent
commit
0fb31a4a9e
  1. 8
      src/core/fonts.js
  2. 1
      test/pdfs/.gitignore
  3. BIN
      test/pdfs/bug1200096.pdf
  4. 7
      test/test_manifest.json

8
src/core/fonts.js

@ -3390,7 +3390,13 @@ var Font = (function FontClosure() {
}); });
} }
} else { } else {
error('cmap table has unsupported format: ' + format); warn('cmap table has unsupported format: ' + format);
return {
platformId: -1,
encodingId: -1,
mappings: [],
hasShortCmap: false
};
} }
// removing duplicate entries // removing duplicate entries

1
test/pdfs/.gitignore vendored

@ -15,6 +15,7 @@
!arial_unicode_en_cidfont.pdf !arial_unicode_en_cidfont.pdf
!asciihexdecode.pdf !asciihexdecode.pdf
!bug1050040.pdf !bug1050040.pdf
!bug1200096.pdf
!canvas.pdf !canvas.pdf
!complex_ttf_font.pdf !complex_ttf_font.pdf
!extgstate.pdf !extgstate.pdf

BIN
test/pdfs/bug1200096.pdf

Binary file not shown.

7
test/test_manifest.json

@ -629,6 +629,13 @@
"link": false, "link": false,
"type": "eq" "type": "eq"
}, },
{ "id": "bug1200096",
"file": "pdfs/bug1200096.pdf",
"md5": "b6bd8df094b5d511c13ed095d2a07515",
"rounds": 1,
"link": false,
"type": "eq"
},
{ "id": "hudsonsurvey", { "id": "hudsonsurvey",
"file": "pdfs/hudsonsurvey.pdf", "file": "pdfs/hudsonsurvey.pdf",
"md5": "bf0e6576a7b6c2fe7485bce1b78e006f", "md5": "bf0e6576a7b6c2fe7485bce1b78e006f",

Loading…
Cancel
Save