• Stars
    star
    1,043
  • Rank 44,174 (Top 0.9 %)
  • Language
    C
  • License
    Other
  • Created about 10 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Adobe Font Development Kit for OpenType

AFDKO Test Suite

Coverage

PyPI

Join the chat at https://gitter.im/adobe-type-tools/afdko

Adobe Font Development Kit for OpenType (AFDKO)

The AFDKO is a set of tools for building OpenType font files from PostScript and TrueType font data.

This repository contains the data files, Python scripts, and sources for the command line programs that comprise the AFDKO. The project uses the Apache 2.0 Open Source license. Please note that the AFDKO makes use of several dependencies, listed in the requirements.txt file, which will automatically be installed if you install AFDKO with pip. Most of these dependencies are BSD or MIT license, with the exception of tqdm, which is MPL 2.0.

Please refer to the AFDKO Overview for a more detailed description of what is included in the package.

Please see the wiki for additional information, such as links to reference materials and related projects.

📣 News

  • The Python port of psautohint will be (re)integrated into the AFDKO repository as "otfautohint":
    • A release will be made on August 28th, 2023
    • Please feel free to try pre-release v4.0.0a in the meantime
    • More information can be found in docs/otfautohint_Notes.md

Installation

The AFDKO requires Python 3.8 or later. Regarding Python 3.11: while Python 3.11 itself is now relatively stable, we are waiting to let some known tool-chain problems resolve.

Releases are available on the Python Package Index (PyPI) and can be installed with pip.

Note for macOS users: we recommend that you do not use the system Python. Among other reasons, some versions of macOS ship with Python 2 and the latest version of the AFDKO is only available for Python 3. You can find instructions for using Brew to install Python 3 on macOS here: Installing Python 3 on Mac OS X. Also: pyenv is a great tool for installing and managing multiple Python versions on macOS.

Note for all users: we STRONGLY recommend the use of a Python virtual environment (venv) and the use of python -m pip install <package> to install all packages (not just AFDKO). Calling pip install directly can result in the wrong pip being called, and the package landing in the wrong location. The combination of using a venv + python -m pip install helps to ensure that pip-managed packages land in the right place.

Note for Linux users (and users of other platforms that are not macOS or Windows): When there is not a pre-built "wheel" for your platform pip will attempt to build the C and C++ portions of the package from source. This process will only succeed if both the C and C++ development tools and libuuid are installed. See build from source below.

Installing

Option 1 (Recommended)

  • Create a virtual environment:

      python -m venv afdko_env
    
  • Activate the virtual environment:

    • macOS & Linux

        source afdko_env/bin/activate
      
    • Windows

        afdko_env\Scripts\activate.bat
      
  • Install afdko:

      python -m pip install afdko
    

Installing the afdko inside a virtual environment prevents conflicts between its dependencies and other modules installed globally.

Option 2 (not recommended unless there is a global conflict)

Local user installation afdko (info):

python -m pip install --user afdko

Updating

Use the -U (or --upgrade) option to update the afdko (and its dependencies) to the newest stable release:

python -m pip install -U afdko

To get pre-release and in-development versions, use the --pre flag:

python -m pip install -U afdko --pre

Uninstalling

To remove the afdko package use the command:

python -m pip uninstall afdko

Build from source

First you must have installed the development tools for your platform.

On macOS, install these with:

xcode-select --install

On Linux (Ubuntu 17.10 LTS or later), install these with:

apt-get -y install python3.8
apt-get -y install python-pip
apt-get -y install python-dev
apt-get -y install uuid-dev

On other POSIX-like operating systems, libuuid and its header files may be in a package named libuuid-devel or util-linux-libs. The source code for libuuid is maintained in the util-linux repository.

On Windows, you need Visual Studio 2017 or later.

To build the afdko from source, clone the afdko GitHub repository, ensure the wheel module is installed (python -m pip install wheel), then cd to the top-level directory of the afdko, and run:

python -m pip install .

For further information on building from source see docs/FDK_Build_Notes.md.

Note

It's not possible to install the afdko in editable/develop mode using python -m pip install -e . ; this is because the toolkit includes binary C executables which setup.py tries to install in the bin/ (or Scripts/) folder, however this process was only meant to be used with text-based scripts (either written in Python or a shell scripting language). To work around this problem (which really only impacts the few core afdko developers who need to get live feedback as they modify the source files) you can use alternative methods like exporting a PYTHONPATH, using a .pth file or similar hacks. For further details read this comment.

Major changes from version 2.5.x

  • The AFDKO has been restructured so that it can be installed as a Python package. It now depends on the user's Python interpreter, and no longer contains its own Python interpreter.

  • Two programs, IS and checkoutlines were dropped because their source code could not be open-sourced. These tools are available in release version 2.5.65322 and older.

Note

If you install the old AFDKO as well as the new PyPI afdko package, the tools from the newer version will take precedence over the older. This happens because pip adds the afdko's package path at the beginning of the system's PATH environment variable, whereas the old installer adds it at the end; this modification to PATH is not undone by the uninstaller. If you want to completely remove the path to the newer version, you will have to edit the PATH. On the Mac, this means editing the line in your login file that sets the PATH variable. On Windows, this means editing the PATH environment variable in the system's Control Panel.

More Repositories

1

cmap-resources

CMap Resources
Makefile
243
star
2

opentype-svg

Tools and sample files for making OpenType-SVG fonts
Python
210
star
3

box-drawing

Python script to draw all the box drawing characters and block elements based on parameters.
Python
143
star
4

agl-aglfn

AGL & AGLFN
92
star
5

Adobe-Japan1

The Adobe-Japan1-7 Character Collection
69
star
6

agl-specification

Adobe Glyph List Specification
63
star
7

kern-dump

Scripts for working with and analyzing kerning information
Python
60
star
8

keyboard-layouts

Keyboard layout conversion from XML-based .keylayout to Windows-compatible .klc
Python
56
star
9

fontlab-scripts

Python scripts for FontLab
Python
55
star
10

aots

Annotated OpenType Specification
XSLT
45
star
11

psautohint

A standalone version of AFDKO’s autohinter
C
43
star
12

adobe-latin-charsets

Adobe Latin Character Sets
HTML
40
star
13

python-scripts

Command line Python scripts
Python
35
star
14

drawBotProofing

Python
31
star
15

python-modules

Python modules
Python
29
star
16

mapping-resources-pdf

Mapping Resources for PDF
Makefile
27
star
17

Adobe-KR

The Adobe-KR-9 Character Collection
25
star
18

Adobe-GB1

The Adobe-GB1-6 Character Collection
24
star
19

kernalytics-rf-ext

Robofont Extension for editing kerning in multiple UFOs
Python
24
star
20

perl-scripts

Command-line Perl Scripts
Perl
22
star
21

pancjkv-ivd-collection

PanCJKV IVD Collection (UNREGISTERED)
Perl
22
star
22

adjust-anchors-rf-ext

Python
19
star
23

otf-making-benchmark

Compare makeotf with fontmake output
Python
15
star
24

robofont-scripts

Python scripts for RoboFont
Python
14
star
25

adobe-cyrillic-charsets

Adobe Cyrillic Character Sets
HTML
13
star
26

Adobe-CNS1

The Adobe-CNS1-7 Character Collection
12
star
27

pyots

Python bindings for OpenType Sanitizer via Python C Extension
Python
11
star
28

adobe-greek-charsets

Adobe Greek Character Sets
HTML
10
star
29

cffsubr

Standalone CFF subroutinizer based on AFDKO tx
Python
8
star
30

Adobe-Manga1

The Adobe-Manga1-0 Character Collection
6
star
31

font-tech-notes

Font Tech Notes ported from Adobe's DevNet site.
5
star
32

shell-scripts

Scripts to run in the Terminal
Shell
4
star
33

ehandler.ps

PostScript error handler
PostScript
4
star
34

krname-ivd-collection

KRName IVD Collection
PostScript
3
star
35

psautohint-testdata

PostScript
1
star