From 575f2dd8b10b65130aaac59a7f1f9710f67b31ad Mon Sep 17 00:00:00 2001 From: Brendan Dahl Date: Thu, 13 Dec 2012 12:32:45 -0800 Subject: [PATCH] Remove cid dictionary values for normalized fonts. --- src/fonts.js | 7 +++++++ test/pdfs/cid_cff.pdf | Bin 0 -> 19970 bytes test/test_manifest.json | 6 ++++++ 3 files changed, 13 insertions(+) create mode 100644 test/pdfs/cid_cff.pdf diff --git a/src/fonts.js b/src/fonts.js index 6d674479c..a8cab40f2 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -5577,7 +5577,14 @@ var CFFParser = (function CFFParserClosure() { } var fontDict = cff.fdArray[0]; + // Make the sanitizer happy and remove anything that is only for CID + // fonts. fontDict.setByKey(17, topDict.getByName('CharStrings')); + fontDict.removeByName('CIDFontVersion'); + fontDict.removeByName('CIDFontRevision'); + fontDict.removeByName('CIDFontType'); + fontDict.removeByName('CIDCount'); + fontDict.removeByName('UIDBase'); cff.topDict = fontDict; cff.isCIDFont = false; delete cff.fdArray; diff --git a/test/pdfs/cid_cff.pdf b/test/pdfs/cid_cff.pdf new file mode 100644 index 0000000000000000000000000000000000000000..264410b61e6bca0e8f118768c7c32db732ff5b91 GIT binary patch literal 19970 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 t$A}UV_-T?DNuoGjEET54t>pGX