Free vfb2ufo font converter
FontLab vfb2ufo is a two-way command-line converter for Mac OS X and Windows. It’s available free of charge from FontLab.
vfb2ufo converts between development font formats: VFB and UFO (including the compressed variant UFOZ). It converts both ways: from VFB to UFO (or UFOZ) and from UFO (or UFOZ) to VFB. If you supply it with a VFB, it will output a UFO (or UFOZ if you use the -z option). If you supply it with a UFO or a UFOZ, it will output a VFB. It converts one VFB or UFO or UFOZ at a time, but you can write batch scripts to facilitate conversion of multiple files at once.
Who’s it for?
vfb2ufo is useful for font developers and type designers who wish to use the traditional FontLab tools with other products, or wish to migrate their data from one product to another.
That said, if you aren’t already eager to use other UFO-friendly tools with your FontLab development files, vfb2ufo probably isn’t for you. We expect most of its users will be people who already know about UFO and have specific UFO-based tools they want to use alongside FontLab Studio (or TypeTool).
If you’ve previously used the RoboFab macros for FontLab Studio 5 to export or import UFOs, you should consider using vfb2ufo. vfb2ufo will convert between VFB and UFO much faster and more accurately than RoboFab (including color marks, hinting, kerning classes and some UFO 2 and 3 features).
You can download vfb2ufo for Mac OS X or Windows free of charge.
Note The updated builds of vfb2ufo no longer require registration. However, please read the installation instructions!
Note: You may use vfb2ufo on all computers that you own, but you may not distribute vfb2ufo or bundle it with other applications. vfb2ufo works on Windows XP – 8.1 and on Mac OS X 10.7 – 10.10 (and likely newer).
Installation on Mac OS X
Unzip the downloaded archive, right-click (or Ctrl+click) on the included install.command file, choose Open. If a dialog box appears, choose Open again. Follow the instructions on screen.
Alternatively, copy the vfb2ufo executable file from the bin subfolder into your /usr/local/bin folder.
Installation on 32-bit Windows
Unzip the downloaded archive, right-click on the included Setup.bat file and choose Run as administrator. Follow the instructions. After the installation, log out from Windows and log in again, or restart Windows.
Alternatively, copy the vfb2ufo.exe executable file from the exe subfolder into a folder of your liking, and manually add that folder to your Windows PATH environment variable. Instructions to modify Windows PATH variable.
Installation on 64-bit Windows
(Currently, the setup.bat file does not work on 64-bit Windows. Sorry!) Unzip the downloaded archive, copy the vfb2ufo.exe executable file from the exe subfolder into a folder of your liking, and add that folder to your Windows PATH environment variable. Instructions to modify Windows PATH variable.
VFB is the development font format used by the traditional Fontlab Ltd. products: FontLab Studio 5, Fontographer 5, TypeTool, ScanFont and AsiaFont Studio. Its filename has the extension .vfb.
UFO (Unified Font Objects) is a development font format used by the next-generation FontLab products such as FontLab VI and TransType 4, and by many other font development apps and tools, such as RoboFont, MetricsMachine, Superpolator, FontForge, Glyphs, Adobe FDK for OpenType, ufo.js and the RoboFab package. The folder name has the extension .ufo.
UFOZ is a compressed form of UFO introduced by Fontlab Ltd. It’s not part of the standard UFO spec, but we hope that it will be adopted by the font development community. Its filename has the extension .ufoz.
vfb2ufo is very simple to use once you know how to use the command-line:
vfb2ufo [options] inputpath [outputpath]
where the portions in [square brackets] indicate optional items (so you should’t actually type the square brackets).
If you don’t specify the outputpath, vfb2ufo will write the output file to the inputpath, changing only the file extension.
The commandline options that can be specified include:
- -h: display this help message
- -l: display font list (no conversion)
- -L: display font list (extended format)
- -pp: display list of written file paths
- -s: no display (silent mode)
- -p path: output folder
- -fo: force overwrite
- -ttx: convert binary OpenType Layout data using TTX-like format
UFO output options
- -64: write GLIF lib data section using base64 (recommended)
- -z: write UFOZ (compressed UFO)
Aspects of conversion
vfb2ufo handles all aspects of the official UFO 2 specification as well as many elements which are supported by the VFB format but don’t have their official place in the UFO format.
vfb2ufo handles PostScript hints. In UFO, PostScript hints are stored inside each GLIF’s lib using the com.adobe.type.autohint key defined by Adobe and used by the Adobe FDK for OpenType package.
vfb2ufo also handles FontLab’s visual TrueType hints. In UFO, visual TrueType hints are stored in the UFO lib under the com.fontlab.v2.tth key and inside each GLIF’s lib under the com.fontlab.ttprogram key. The notation is defined by Fontlab Ltd. and is supported by the RoboFont TTH extension.
Important Compatibility note about the ‑64 option
vfb2ufo provides the -64 option to control how PostScript and visual TrueType hints are written into the GLIF lib sections of the UFO.
If the -64 option is supplied (recommended), both PostScript and visual TrueType hinting data in the GLIF lib will be encoded using base64 to strictly match the specification. At this time, the RoboFont TTH extension will only read the visual TrueType hints if they are written into the UFO using the ‑64 option. The best way of handling this is currently a subject of debate within the UFO community.
If the option is not supplied, the data is written directly into the GLIF lib (inside the data element) using human-readable custom XML tags. This is the method which Adobe introduced in AFDKO to store PostScript hints, but it is not compatible with the .plist format used by UFO, which requires that all contents inside a data element must be encoded as base64.
This option only has an effect if the source file is a VFB. If the source is a UFO/UFOZ, vfb2ufo will automatically detect whether the PostScript or TrueType hinting data is base64-encoded or human-readable, and will convert it correctly to VFB.
OpenType Layout features
vfb2ufo converts the OpenType Layout features specified using the FEA language (in FLS5 in the OpenType panel, in UFO in the features.fea file).
If the -ttx option is provided, the compiled (binary) OpenType Layout tables stored in the VFB will also be written into the UFO data/com.fontlab.v2.otl.ttx.xml file (in a TTX-compatible format), and the same information will be used when converting UFO to VFB.
When the source VFB font contains multiple masters, vfb2ufo will write several UFO fonts, one per master. If the VFB file is named LatoMM.vfb, the UFO for master 0 will be named LatoMM.ufo, the UFO for master 1 will be named LatoMM‑1.ufo, the UFO for master 2 will be named LatoMM‑2.ufo etc. The -pp option will print path names for all written files, which may be useful to keep track of what’s actually written when you convert MM VFBs.
vfb2ufo does not allow you to do the reverse, i.e. convert several UFOs into one VFB with multiple masters.
UFOZ: Compressed UFO
vfb2ufo has a -z option. If it’s supplied and the source file is a VFB, vfb2ufo will output a .ufoz file instead of a .ufo folder. The .ufoz file is a ZIP file which contains the actual .ufo folder (including that folder). So a LatoReg.ufoz file contains one LatoReg.ufo folder, which inside stores all the UFO information. The -z option has no effect if the source is an UFO or an UFOZ, as vfb2ufo will automatically detect it.
You can manually unzip an UFOZ by changing its extension from .ufoz to .zip and unzipping it. You can also manually create a UFOZ by zipping your UFO folder and changing the extension of the resulting ZIP to .ufoz.
Support in other apps
The custom UFO extensions produced by vfb2ufo, and the UFOZ format, will be supported by the next versions of FontLab apps: FontLab VI, a future release of TransType, and others.
Usage examples for Mac OS X
To use the command-line on Mac OS X, run the /Applications/Utilities/Terminal.app program.
vfb2ufo -64 LatoReg.vfb
will read the LatoReg.vfb file from the current folder and will write a UFO package named LatoReg.ufo in the same folder.
vfb2ufo "~/Documents/UFO/LatoReg.ufo" "~/Desktop/LatoReg.vfb"
will read the LatoReg.ufo from the current user’s Documents/UFO/ folder and will write a LatoReg.vfb file onto the the Desktop.
find "~/My VFB/" -iname "*.vfb" | while read p; do echo -n "."; vfb2ufo -s -pp -64 -ttx -p "~/My UFO/" "$p"; done;
will find all VFBs in the My VFB folder in the current user’s home folder (including all subfolders), and write the UFOs directly into the My UFO folder in the current user’s home folder (without replicating the subfolder structure). The tool will print the path names for all written files, one per line. Note: Files with the same source filename will not be overwritten, but you can force overwriting them using the -fo option.
Usage examples for Windows
To use the command-line on Windows, run the Accessories / Command Prompt program from the Start menu.
vfb2ufo.exe -64 LatoReg.vfb
will read the LatoReg.vfb file from the current folder and will write a subfolder named LatoReg.ufo in the same folder. The hinting information will be stored in a RoboFont-compatible form.
vfb2ufo.exe "%USERPROFILE%\Documents\UFO\LatoReg.ufo" "%USERPROFILE%\Desktop\LatoReg.vfb"
will read the LatoReg.ufo from the current user’s Documents folder and will write a LatoReg.vfb file into the current user’s Desktop folder.
Note: the folder names Documents and Desktop are valid for Windows Vista and newer. On Windows XP, user My Documents and My Desktop instead.
Feedback and discussion
To discuss vfb2ufo, ask questions, report problems and propose changes, please use the FontLab VI: UFO support (also vfb2ufo) board on the FontLab Forum .
For updates and more information, please visit this page: