From 98e023e464d21e36b437bd034e5acc69e4e166b7 Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Thu, 24 Apr 2014 11:48:18 -0500 Subject: [PATCH] Guesses Type1C font type based on file content --- src/core/fonts.js | 14 ++++++++++++-- test/pdfs/.gitignore | 1 + test/pdfs/issue4668.pdf | Bin 0 -> 32814 bytes test/test_manifest.json | 6 ++++++ 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 test/pdfs/issue4668.pdf diff --git a/src/core/fonts.js b/src/core/fonts.js index 5cea7df89..8072739cd 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -19,7 +19,7 @@ isNum, ISOAdobeCharset, Stream, stringToArray, stringToBytes, string32, TextDecoder, warn, Lexer, Util, FONT_IDENTITY_MATRIX, FontRendererFactory, shadow, isString, IdentityCMap, Name, - CMapFactory, PDFJS */ + CMapFactory, PDFJS, readUint32 */ 'use strict'; @@ -2259,7 +2259,12 @@ var Font = (function FontClosure() { // Some fonts might use wrong font types for Type1C or CIDFontType0C var subtype = properties.subtype; if (subtype == 'Type1C' && (type != 'Type1' && type != 'MMType1')) { - type = 'Type1'; + // Some TrueType fonts by mistake claim Type1C + if (isTrueTypeFile(file)) { + subtype = 'TrueType'; + } else { + type = 'Type1'; + } } if (subtype == 'CIDFontType0C' && type != 'CIDFontType0') { type = 'CIDFontType0'; @@ -2407,6 +2412,11 @@ var Font = (function FontClosure() { file.virtualOffset += data.length; } + function isTrueTypeFile(file) { + var header = file.peekBytes(4); + return readUint32(header, 0) === 0x00010000; + } + /** * Rebuilds the char code to glyph ID map by trying to replace the char codes * with their unicode value. It also moves char codes that are in known diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 8fd46baa3..3067af533 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -50,6 +50,7 @@ !bug864847.pdf !issue1002.pdf !issue925.pdf +!issue4668.pdf !gradientfill.pdf !bug903856.pdf !bug850854.pdf diff --git a/test/pdfs/issue4668.pdf b/test/pdfs/issue4668.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b6ef90a4124dc90e0a8182ed5db25d244698bdbd GIT binary patch literal 32814 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 literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index 8f7cf3b6b..de9697b7b 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -1583,6 +1583,12 @@ "lastPage": 1, "type": "load" }, + { "id": "issue4668", + "file": "pdfs/issue4668.pdf", + "md5": "a749d5ca995ad745411406d29156b04e", + "rounds": 1, + "type": "eq" + }, { "id": "issue3666", "file": "pdfs/issue3666.pdf", "md5": "c2156a34b9634b174556910732ab9df0",