|
|
|
fontkit = require '../pdfkit/node_modules/fontkit'
|
|
|
|
|
|
|
|
fira_path = "../pitfall/test/assets/fira.ttf"
|
|
|
|
f = fontkit.openSync(fira_path)
|
|
|
|
console.log "*************************** start decode"
|
|
|
|
thing = f.GPOS.lookupList.get(0)
|
|
|
|
console.log thing
|
|
|
|
|
|
|
|
###
|
|
|
|
{ version: 65536,
|
|
|
|
scriptList:
|
|
|
|
[ { tag: 'DFLT', script: [Object] },
|
|
|
|
{ tag: 'cyrl', script: [Object] },
|
|
|
|
{ tag: 'grek', script: [Object] },
|
|
|
|
{ tag: 'latn', script: [Object] } ],
|
|
|
|
featureList:
|
|
|
|
[ { tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'cpsp', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'kern', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mark', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] },
|
|
|
|
{ tag: 'mkmk', feature: [Object] } ],
|
|
|
|
lookupList:
|
|
|
|
[ { lookupType: 1,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 1,
|
|
|
|
subTables: [ [Object] ],
|
|
|
|
markFilteringSet: 2 },
|
|
|
|
{ lookupType: 2,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 6,
|
|
|
|
subTables: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
|
|
|
|
markFilteringSet: 2 },
|
|
|
|
{ lookupType: 2,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 7,
|
|
|
|
subTables:
|
|
|
|
[ [Object],
|
|
|
|
[Object],
|
|
|
|
[Object],
|
|
|
|
[Object],
|
|
|
|
[Object],
|
|
|
|
[Object],
|
|
|
|
[Object] ],
|
|
|
|
markFilteringSet: 2 },
|
|
|
|
{ lookupType: 2,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 6,
|
|
|
|
subTables: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
|
|
|
|
markFilteringSet: 2 },
|
|
|
|
{ lookupType: 2,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 2,
|
|
|
|
subTables: [ [Object], [Object] ],
|
|
|
|
markFilteringSet: 4 },
|
|
|
|
{ lookupType: 4,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 1,
|
|
|
|
subTables: [ [Object] ],
|
|
|
|
markFilteringSet: 4 },
|
|
|
|
{ lookupType: 4,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 1,
|
|
|
|
subTables: [ [Object] ],
|
|
|
|
markFilteringSet: 4 },
|
|
|
|
{ lookupType: 4,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 1,
|
|
|
|
subTables: [ [Object] ],
|
|
|
|
markFilteringSet: 6 },
|
|
|
|
{ lookupType: 6,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 1,
|
|
|
|
subTables: [ [Object] ],
|
|
|
|
markFilteringSet: 6 },
|
|
|
|
{ lookupType: 6,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 1,
|
|
|
|
subTables: [ [Object] ],
|
|
|
|
markFilteringSet: 6 },
|
|
|
|
{ lookupType: 6,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 1,
|
|
|
|
subTables: [ [Object] ],
|
|
|
|
markFilteringSet: 6 },
|
|
|
|
{ lookupType: 6,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 1,
|
|
|
|
subTables: [ [Object] ],
|
|
|
|
markFilteringSet: 6 },
|
|
|
|
{ lookupType: 6,
|
|
|
|
flags:
|
|
|
|
{ rightToLeft: false,
|
|
|
|
ignoreBaseGlyphs: false,
|
|
|
|
ignoreLigatures: false,
|
|
|
|
ignoreMarks: false,
|
|
|
|
useMarkFilteringSet: false,
|
|
|
|
markAttachmentType: false },
|
|
|
|
subTableCount: 1,
|
|
|
|
subTables: [ [Object] ],
|
|
|
|
markFilteringSet: 1 } ] }
|
|
|
|
###
|