From 26e15f7d7686aa8dc3ecc8981bb4c25d93556aeb Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 22 Aug 2017 17:09:44 -0700 Subject: [PATCH] test 19 --- pitfall/fontkit/glyphinfo.rkt | 4 +++- pitfall/pitfall/test/test14rkt.pdf | Bin 6287 -> 0 bytes pitfall/pitfall/test/test19.coffee | 7 +++++-- pitfall/pitfall/test/test19.pdf | Bin 0 -> 6731 bytes pitfall/pitfall/test/test19.rkt | 13 ++++++++----- pitfall/pitfall/test/test19crkt copy.pdf | Bin 0 -> 4636 bytes pitfall/pitfall/test/test19crkt.pdf | Bin 0 -> 4636 bytes pitfall/pitfall/test/test19rkt copy.pdf | Bin 0 -> 6731 bytes pitfall/pitfall/test/test19rkt.pdf | Bin 0 -> 6731 bytes 9 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 pitfall/pitfall/test/test19.pdf create mode 100644 pitfall/pitfall/test/test19crkt copy.pdf create mode 100644 pitfall/pitfall/test/test19crkt.pdf create mode 100644 pitfall/pitfall/test/test19rkt copy.pdf create mode 100644 pitfall/pitfall/test/test19rkt.pdf diff --git a/pitfall/fontkit/glyphinfo.rkt b/pitfall/fontkit/glyphinfo.rkt index de38162a..1aabd39b 100644 --- a/pitfall/fontkit/glyphinfo.rkt +++ b/pitfall/fontkit/glyphinfo.rkt @@ -28,7 +28,9 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/GlyphInfo.js [cursiveAttachment #f] [markattachment #f] [shaperInfo #f] - [substituted #f]) + [substituted #f] + [isMark #f] + [isLigature #f]) (define/public (id [id-in #f]) (cond diff --git a/pitfall/pitfall/test/test14rkt.pdf b/pitfall/pitfall/test/test14rkt.pdf index a2e57e9ff54b90fdec078efe227257a47151b71a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 6287 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 diff --git a/pitfall/pitfall/test/test19.coffee b/pitfall/pitfall/test/test19.coffee index 9b62d8af..27b30352 100644 --- a/pitfall/pitfall/test/test19.coffee +++ b/pitfall/pitfall/test/test19.coffee @@ -1,15 +1,18 @@ PDFDocument = require 'pdfkit' fs = require 'fs' +# test ss03 (alternate ampersand form) + make = (doc) -> # Register a font name for use later - doc.registerFont('the-font', 'assets/fira.otf') + doc.registerFont('the-font', 'assets/fira.ttf') # Set the font, draw some text doc.font('the-font') .fontSize(100) - .text('x', 100, 100, {width: false}) + .text('A&B', 100, 100, {width: false}) + .text('X&Y', 100, 200, {width: false, features: ["ss03"]}) doc.end() diff --git a/pitfall/pitfall/test/test19.pdf b/pitfall/pitfall/test/test19.pdf new file mode 100644 index 0000000000000000000000000000000000000000..59cd3e793817151badd0c4c4dbb12d0794225f4e GIT binary patch literal 6731 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 literal 0 HcmV?d00001 diff --git a/pitfall/pitfall/test/test19.rkt b/pitfall/pitfall/test/test19.rkt index f0afa049..77552800 100644 --- a/pitfall/pitfall/test/test19.rkt +++ b/pitfall/pitfall/test/test19.rkt @@ -3,6 +3,8 @@ ;; subset font with GPOS table (define-runtime-path ttf-path "assets/fira.ttf") +; test ss03 (alternate ampersand form) + (define (proc doc) ;; Register a font name for use later (send doc registerFont "the-font" (path->string ttf-path)) @@ -10,12 +12,13 @@ ;; Set the font, draw some text (send* doc [font "the-font"] - [fontSize 25] - [text "Hola Hola" 100 100 (hash 'width #f)])) + [fontSize 100] + [text "A&B" 100 100 (hash 'width #f)] + [text "X&Y" 100 200 (hash 'width #f 'features '(ss03))])) ;; test against non-subsetted font version -(define-runtime-path this "test14rkt.pdf") -(make-doc this #f proc ) +(define-runtime-path this "test19rkt.pdf") +(make-doc this #f proc) -(define-runtime-path that "test14crkt.pdf") +(define-runtime-path that "test19crkt.pdf") (make-doc that #t proc #:pdfkit #f) diff --git a/pitfall/pitfall/test/test19crkt copy.pdf b/pitfall/pitfall/test/test19crkt copy.pdf new file mode 100644 index 0000000000000000000000000000000000000000..25a16c392fefb09054b356f163baaee1d4bb8a16 GIT binary patch literal 4636 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 literal 0 HcmV?d00001 diff --git a/pitfall/pitfall/test/test19crkt.pdf b/pitfall/pitfall/test/test19crkt.pdf new file mode 100644 index 0000000000000000000000000000000000000000..25a16c392fefb09054b356f163baaee1d4bb8a16 GIT binary patch literal 4636 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 literal 0 HcmV?d00001 diff --git a/pitfall/pitfall/test/test19rkt copy.pdf b/pitfall/pitfall/test/test19rkt copy.pdf new file mode 100644 index 0000000000000000000000000000000000000000..49b31239eb42f54dc1c09ca8ec2eaedca51618ab GIT binary patch literal 6731 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 JiQh;l{|9!r;hX>f literal 0 HcmV?d00001 diff --git a/pitfall/pitfall/test/test19rkt.pdf b/pitfall/pitfall/test/test19rkt.pdf new file mode 100644 index 0000000000000000000000000000000000000000..49b31239eb42f54dc1c09ca8ec2eaedca51618ab GIT binary patch literal 6731 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 JiQh;l{|9!r;hX>f literal 0 HcmV?d00001