Skip to main content

Tools for extracting data from font binaries into UFO objects.

Project description

CI Build Status PyPI Version Python Versions

UFO Extractor

Tools for extracting data from font binaries into UFO objects.

Supported input formats

The following font formats are supported:

  • CFF or TrueType-flavored OpenType fonts (*.otf, *.ttf)

  • FontTools TTX files (*.ttx)

  • WOFF 1.0/2.0 (*.woff, *.woff2)

  • PostScript Type1 fonts (*.pfa, *.pfb, etc.)

  • FontLab files (*.vfb, when installed with optional dependency “vfb”)

Note however, that what data will (or even could) be exported will depend on input file format and the file itself.

Python module

The example below demonstrates how one can import data into a ufoLib2 or Defcon Font instance:

>>> import extractor
>>> from ufoLib2 import Font    # alternatively: from defcon import Font
>>> ufo = Font()
>>> extractor.extractUFO("/path/to/MyFont.ttf", ufo)
>>> ufo.save("/path/to/MyFont.ufo")

Console script

A console script for one-off conversion is also provided (note: see Installation below):

$ extractufo -h
usage: extractufo [-h] [-m {ufoLib2,defcon}] [-z] FONT_FILE [FONT_FILE ...]

Extract data from font binaries and build UFO objects from them.

positional arguments:
  FONT_FILE             Input font path

options:
  -h, --help            show this help message and exit
  -m {ufoLib2,defcon}, --ufo-module {ufoLib2,defcon}
                        Select the default library for writing UFOs (default: autodetect, prefer ufoLib2)
  -z, --zip             Output UFO ZIP

Each resulting UFO will be saved as FONT_FILE.ufo(z) in the same directory as the original FONT_FILE.
If destination file or directory already exists, conversion for that source file will be skipped and the application exit code will indicate an error.

Installation

You can install extractor with pip:

$ pip install ufo-extractor

To install with support for extracting from vfb files:

$ pip install ufo-extractor[vfb]

If you want to use the console script and have neither ufoLib2 nor defcon installed (or aren’t sure), running the following will install ufoLib2 as well to ensure that the script works:

$ pip install ufo-extractor[script]

The options may also be combined:

$ pip install ufo-extractor[vfb][script]

Note that, for historical reasons, the package is listed on the Python Package Index under the name ufo-extractor, to disambiguate it from another package also called “extractor”. However, the import name for the package remains extractor, without prefix.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ufo_extractor-0.8.0.zip (3.1 MB view details)

Uploaded Source

Built Distribution

ufo_extractor-0.8.0-py2.py3-none-any.whl (24.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ufo_extractor-0.8.0.zip.

File metadata

  • Download URL: ufo_extractor-0.8.0.zip
  • Upload date:
  • Size: 3.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for ufo_extractor-0.8.0.zip
Algorithm Hash digest
SHA256 1f93924527b8c7611ff74d93d9df30468a0f2753c5c0b974198250ed9fe31901
MD5 5d1306709452be6b47528f8a283e84d9
BLAKE2b-256 5bed055da07b3a2b2ca19277655ffc5e266536d7ee5debb306948ae541b8b40a

See more details on using hashes here.

File details

Details for the file ufo_extractor-0.8.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ufo_extractor-0.8.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5ac38b20a2245cb0313ee9bd2fe136c8103a16f4c3044c3748860528a7b88e0a
MD5 22799772b121a027234d79b5437f7ad6
BLAKE2b-256 612123af69292ad6f395a8fca09df1ca3ac60af3ced43f1f392c45aefe8577d9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page