From af0dfda4f484f579a35c78e4b412667b70b5a7c2 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Sun, 12 May 2019 21:56:29 -0500 Subject: [PATCH] don't panic about unhinted ttf fonts --- fontland/fontland/subset.rkt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/fontland/fontland/subset.rkt b/fontland/fontland/subset.rkt index 10ad1500..5abb3332 100644 --- a/fontland/fontland/subset.rkt +++ b/fontland/fontland/subset.rkt @@ -284,15 +284,23 @@ https://github.com/mbutterick/fontkit/blob/master/src/subset/TTFSubset.js (define new-tables (let () + ;; unhinted ttfs don't have `cvt_` `prep` or `fpgm`; + ;; so fill in dummy data (define kvs (dictify 'head new-head-table 'hhea new-hhea-table 'loca (ttf-subset-loca ss) 'maxp new-maxp-table - 'cvt_ (get-cvt_-table (subset-font ss)) - 'prep (get-prep-table (subset-font ss)) + 'cvt_ (if (has-table? (subset-font ss) 'cvt_) + (get-cvt_-table (subset-font ss)) + (hash 'controlValues (list 0))) + 'prep (if (has-table? (subset-font ss) 'prep) + (get-prep-table (subset-font ss)) + (hash 'controlValueProgram (list 0))) 'glyf (ttf-subset-glyf ss) 'hmtx (ttf-subset-hmtx ss) - 'fpgm (get-fpgm-table (subset-font ss)))) + 'fpgm (if (has-table? (subset-font ss) 'fpgm) + (get-fpgm-table (subset-font ss)) + (hash 'instructions (list 0))))) (for ([(k v) (in-dict kvs)] #:unless v) (error 'encode (format "missing value for ~a" k)))