Complete CFF table parser with Type 2 CharString interpreter#25
Draft
Complete CFF table parser with Type 2 CharString interpreter#25
Conversation
- Extended CFF parser to read CharStrings INDEX, Private DICT, Local Subr INDEX, and charset - Implemented Type 2 CharString interpreter with support for all major path construction operators - Added getCffGlyph method to Font class to parse CFF glyphs - Converted CFF cubic bezier paths to Point[] format compatible with TrueType - Updated getGlyph to detect and handle both TrueType (glyf) and CFF fonts Co-authored-by: bschlenk <1390303+bschlenk@users.noreply.github.com>
- Tests for simple line drawing (horizontal and vertical) - Tests for curve drawing (rrcurveto) - Tests for width handling - Tests for bounds calculation Co-authored-by: bschlenk <1390303+bschlenk@users.noreply.github.com>
Co-authored-by: bschlenk <1390303+bschlenk@users.noreply.github.com>
Co-authored-by: bschlenk <1390303+bschlenk@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Complete cff table parser functionality
Complete CFF table parser with Type 2 CharString interpreter
Nov 16, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The CFF table parser could read basic metadata but not extract glyphs. This adds full glyph parsing for CFF/OpenType fonts.
Changes
Extended CFF parser (
tables/cff.ts)Integrated CFF into Font class (
font.ts)getCffGlyph()method for CFF fontsgetGlyph()to auto-detect font type (CFF vs TrueType)Example usage:
Tested with unit tests covering line drawing, curves, width handling, and bounds calculation.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.