From 81c602c61caf863c69a1e18854ac47c9eabf45db Mon Sep 17 00:00:00 2001 From: calixteman Date: Fri, 26 Mar 2021 18:23:18 +0100 Subject: [PATCH] Set CFF header to 4 when writing it because it contains 4 elements (#13149) --- src/core/cff_parser.js | 4 +++- test/pdfs/.gitignore | 1 + test/pdfs/issue13147.pdf | Bin 0 -> 21487 bytes test/test_manifest.json | 6 ++++++ 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 test/pdfs/issue13147.pdf diff --git a/src/core/cff_parser.js b/src/core/cff_parser.js index 2e2b811e4..a6c7bae35 100644 --- a/src/core/cff_parser.js +++ b/src/core/cff_parser.js @@ -1556,7 +1556,9 @@ class CFFCompiler { } compileHeader(header) { - return [header.major, header.minor, header.hdrSize, header.offSize]; + // `header.hdrSize` can be any value but we only write 4 values + // so header size is 4 (prevents OTS from rejecting the font). + return [header.major, header.minor, 4, header.offSize]; } compileNameIndex(names) { diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 36e62e5e3..12f5eb3ff 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -337,6 +337,7 @@ !issue4573.pdf !issue4722.pdf !issue4800.pdf +!issue13147.pdf !issue11477_reduced.pdf !text_clip_cff_cid.pdf !issue4801.pdf diff --git a/test/pdfs/issue13147.pdf b/test/pdfs/issue13147.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cbc9cef9387bb9ca9a35c5887980fedc94c915e3 GIT binary patch literal 21487 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