250 lines
9.2 KiB
HTML
250 lines
9.2 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>RoboFab UFO</title>
|
||
|
<link href="../default.css" type="text/css" rel="stylesheet" />
|
||
|
</head><body>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<script type="text/javascript" src="http://www.google-analytics.com/urchin.js"></script>
|
||
|
<script type="text/javascript">
|
||
|
_uacct = "UA-2044310-2";
|
||
|
urchinTracker();
|
||
|
</script>
|
||
|
|
||
|
<div id="modellogo">
|
||
|
<img src="../img/drawmodel_header.jpg" width="595" height="112" />
|
||
|
</div>
|
||
|
<div class="leftcontent">
|
||
|
<h1 class="crb-seealso">
|
||
|
RoboFab
|
||
|
</h1>
|
||
|
<p class="menu">
|
||
|
<a href="../index.html">
|
||
|
Home
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../download/index.html">
|
||
|
Download v1.1.1
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../intro.html">
|
||
|
Intro
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../install.html">
|
||
|
Install Notes
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../history.html">
|
||
|
History
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../executive.html">
|
||
|
Summary
|
||
|
</a>
|
||
|
</p>
|
||
|
|
||
|
<p class="menu">
|
||
|
<a href="../howto/index.html">
|
||
|
How to's
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../talks/index.html">
|
||
|
Step by step
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../tools/dialogs.html">
|
||
|
Fab Dialogs
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../objects/index.html">
|
||
|
Object reference
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../objects/model.html">
|
||
|
Object map
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../tools/index.html">
|
||
|
Tools
|
||
|
</a>
|
||
|
<br />
|
||
|
<span class="selected"><a href="index.html">
|
||
|
UFO Overview
|
||
|
</a></span>
|
||
|
<br />
|
||
|
<a href="specification.html">
|
||
|
UFO Spec
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../limitations.html">
|
||
|
Fab Limitations
|
||
|
</a>
|
||
|
|
||
|
<a href="../links/index.html">
|
||
|
Links
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../credits.html">
|
||
|
Credits
|
||
|
</a>
|
||
|
</p>
|
||
|
|
||
|
<h1 class="crb-seealso">
|
||
|
Support RoboFab
|
||
|
</h1>
|
||
|
|
||
|
|
||
|
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
||
|
<input type="hidden" name="cmd" value="_s-xclick">
|
||
|
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
|
||
|
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
|
||
|
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
|
||
|
">
|
||
|
</form>
|
||
|
|
||
|
|
||
|
|
||
|
<h2 class="crb-seealso">
|
||
|
Up
|
||
|
</h2>
|
||
|
|
||
|
<p class="menu">
|
||
|
<p class="bonbon_uplink"><a href="../index.html">Back to RoboFab Reference</a></p>
|
||
|
</p>
|
||
|
|
||
|
<h2 class="crb-seealso">
|
||
|
See also
|
||
|
</h2>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<p class="menu">
|
||
|
|
||
|
</p>
|
||
|
</div>
|
||
|
|
||
|
<div class="footer">
|
||
|
<a href="../feedback.html">
|
||
|
Feedback
|
||
|
</a>
|
||
|
<br />
|
||
|
<a href="../map.html">
|
||
|
Sitemap
|
||
|
</a>
|
||
|
<br />
|
||
|
Please also refer to the
|
||
|
<a href="../download/license.html">
|
||
|
Legal
|
||
|
</a>
|
||
|
<br />
|
||
|
Copyright 2003-2006 RoboFab
|
||
|
<br />
|
||
|
version 1.1.1
|
||
|
</div>
|
||
|
|
||
|
<div class="google">
|
||
|
|
||
|
|
||
|
<h2>RoboFab Mailinglist</h2>
|
||
|
<p>
|
||
|
Join the RoboFab users community at Google groups.
|
||
|
</p>
|
||
|
|
||
|
|
||
|
<img src="http://groups.google.com/groups/img/3nb/groups_bar.gif" alt="Google Groups" height="26" width="132" />
|
||
|
|
||
|
<p>
|
||
|
<form action="http://groups.google.com/group/robofab/boxsubscribe">
|
||
|
Email: <input type="text" name="../email" />
|
||
|
<input type="submit" name="../sub" value="Subscribe" />
|
||
|
</form>
|
||
|
</p>
|
||
|
<p>
|
||
|
<a href="http://groups.google.com/group/robofab">Visit this group</a>
|
||
|
</p>
|
||
|
|
||
|
|
||
|
<h2>RoboFab Sponsors</h2>
|
||
|
|
||
|
<script type="text/javascript">
|
||
|
|
||
|
|
||
|
google_ad_client = "pub-3703953449723704";
|
||
|
google_ad_width = 120;
|
||
|
google_ad_height = 600;
|
||
|
google_ad_format = "120x600_as";
|
||
|
google_ad_type = "text_image";
|
||
|
google_ad_channel ="";
|
||
|
google_color_border = "336699";
|
||
|
google_color_bg = "FFFFFF";
|
||
|
google_color_link = "0000FF";
|
||
|
google_color_url = "008000";
|
||
|
google_color_text = "000000";
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</script>
|
||
|
|
||
|
|
||
|
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
|
||
|
|
||
|
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<div class="content">
|
||
|
<h1>RoboFab UFO Overview</h1>
|
||
|
|
||
|
<h2>Another font format?</h2>
|
||
|
<p>
|
||
|
No. The RoboFab developers felt the need for a flexible, text based (XML) format to store data related to <strong>typedesign</strong>. RoboFab Python objects work with UFO files, but the UFO specification is open: others can write implementations of the UFO format in other languages for other purposes. The UFO format is documented <a href="specification.html">here</a>.
|
||
|
</p>
|
||
|
|
||
|
|
||
|
<h3>GLIF</h3>
|
||
|
|
||
|
<div id="rightimage">
|
||
|
<img src="xmltext.jpg" alt="xml text" border="0" width="347" height="409" />
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<p>
|
||
|
Glyphs and glyph related data is stored in a GLIF file which lives with its friends in a folder. Just van Rossum developed the XML format and described the tags in great detail <a href="glif.html">here</a>. A GLIF file describes all parts of the glyph: contours, points, off curves, on curves, width, even the glyph lib is stored here. RoboFab reads and writes GLIF. You could email a glyph by including the text in the email body. GLIFs have been sent through text chats and even SMS text messaging. GLIFs could be printed out on paper, stored, typed in after a 1000 years and all the data would still be present.
|
||
|
</p>
|
||
|
|
||
|
<h3>GlyphSet</h3>
|
||
|
<p>
|
||
|
A GlyphSet is an object which manages the GLIF files. It can make an index of all GLIF files in a folder and store it in a seperate .plist file in which glyph names are mapped to GLIF file names. When a GlyphSet is asked for a particular Glyph, it can refer to the index and retrieve the right file. GlyphSet is "lazy loading", it will only read and parse XML for Glyphs that are asked for. Font objects in NoneLab use GlyphSet to access and write the GLIFs.
|
||
|
</p>
|
||
|
|
||
|
<h2>Unified Font Objects</h2>
|
||
|
<p>
|
||
|
By standardising the API of the RoboFab objects, scripts become more portable between different font applications. This means saving time and effort which can be spent more creatively. Fonts, glyphs and contours aren't going to change a lot. More likely, stuff will be added to it and exist next to the other data. RoboFab and UFO can deal with the future.
|
||
|
</p>
|
||
|
|
||
|
<h3>Unified Font Objects Consortium</h3>
|
||
|
|
||
|
<p>
|
||
|
The RoboFab developers extend an invitation to all other font tool developers to support the UFO file format, and perhaps if possible the UFO object API as well. We're ready to license or cross license the RoboFab library for bundling with other applications.
|
||
|
|
||
|
</p>
|
||
|
|
||
|
<h3>Which apps?</h3>
|
||
|
<p>
|
||
|
Through RoboFab normal non-FontLab python scripts can read and write UFO font data. RoboFab has scripts that take care of exporting and importing UFO font data into FontLab's .vfb files. And recently RoboFog was added to the list with some scripts from LettError that facilitate exporting RoboFog data into UFO format. A compact and fast-loading version of UFO is under construction.
|
||
|
</p>
|
||
|
</div>
|
||
|
</body></html>
|