Skip to main content

A bridge between UFOs and FontTools.

Project description

Build Status PyPI Version

ufo2ft

ufo2ft (“UFO to FontTools”) is a fork of ufo2fdk whose goal is to generate OpenType font binaries from UFOs without the FDK dependency.

The library provides two functions, compileOTF and compileTTF, which work exactly the same way:

from ufo2ft import compileOTF
from robofab.world import OpenFont
ufo = OpenFont('MyFont-Regular.ufo')
otf = compileOTF(ufo)
otf.save('MyFont-Regular.otf')

In most cases, the behavior of ufo2ft should match that of ufo2fdk, whose documentation is retained below (and hopefully is still accurate).

Naming Data

As with any OpenType compiler, you have to set the font naming data to a particular standard for your naming to be set correctly. In ufo2fdk, you can get away with setting two naming attributes in your font.info object for simple fonts:

  • familyName: The name for your family. For example, “My Garamond”.

  • styleName: The style name for this particular font. For example, “Display Light Italic”

ufo2fdk will create all of the other naming data based on thse two fields. If you want to use the fully automatic naming system, all of the other name attributes should be set to None in your font. However, if you want to override the automated system at any level, you can specify particular naming attributes and ufo2fdk will honor your settings. You don’t have to set all of the attributes, just the ones you don’t want to be automated. For example, in the family “My Garamond” you have eight weights. It would be nice to style map the italics to the romans for each weight. To do this, in the individual romans and italics, you need to set the style mapping data. This is done through the styleMapFamilyName and styleMapStyleName attributes. In each of your roman and italic pairs you would do this:

My Garamond-Light.ufo

  • familyName = “My Garamond”

  • styleName = “Light”

  • styleMapFamilyName = “My Garamond Display Light”

  • styleMapStyleName = “regular”

My Garamond-Light Italic.ufo

  • familyName = “My Garamond”

  • styleName = “Display Light Italic”

  • styleMapFamilyName = “My Garamond Display Light”

  • styleMapStyleName = “italic”

My Garamond-Book.ufo

  • familyName = “My Garamond”

  • styleName = “Book”

  • styleMapFamilyName = “My Garamond Display Book”

  • styleMapStyleName = “regular”

My Garamond-Book Italic.ufo

  • familyName = “My Garamond”

  • styleName = “Display Book Italic”

  • styleMapFamilyName = “My Garamond Display Book”

  • styleMapStyleName = “italic”

etc.

Additionally, if you have defined any naming data, or any data for that matter, in table definitions within your font’s features that data will be honored.

Feature generation

If your font’s features do not contain kerning/mark/mkmk features, ufo2ft will create them based on your font’s kerning/anchor data.

Fallbacks

Most of the fallbacks have static values. To see what is set for these, look at fontInfoData.py in the source code.

In some cases, the fallback values are dynamically generated from other data in the info object. These are handled internally with functions.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

ufo2ft-0.3.2.zip (43.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ufo2ft-0.3.2-py2.py3-none-any.whl (31.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ufo2ft-0.3.2.zip.

File metadata

  • Download URL: ufo2ft-0.3.2.zip
  • Upload date:
  • Size: 43.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ufo2ft-0.3.2.zip
Algorithm Hash digest
SHA256 04080295e42ac598be077108db3e7f1eda35232deb02426d7efc515bf6980907
MD5 ed8284be17985d83d78a0c4e25c75071
BLAKE2b-256 b9f6c8661589c961200b286b36eabde68296421b2978c92976a8a4d0587179ed

See more details on using hashes here.

File details

Details for the file ufo2ft-0.3.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ufo2ft-0.3.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 11ffe82189cd02cb8e12af915581c8bac11bc35aa56b8f1424b34c2acdeea065
MD5 f7b14818db35d5767ab4b9a0eabe7729
BLAKE2b-256 7e4d4426dd7f9b30329b1c61a25fa28399fc043de19fe0ebf16639e375aeb79d

See more details on using hashes here.

Supported by

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