107 Commits

Author SHA1 Message Date
Behdad Esfahbod
400e9539fd Improve import handling
For example trying to run fontTools on Jython or PyPy fails
because they don't have a numpy module.  However, the error
is caught by the getTableModule() and instead DefaultTable
used for tables that use numpy in their implementation.  Fix
that.
2013-08-19 14:17:10 -04:00
Behdad Esfahbod
b0dc6dfc8b Add support for saving WOFF file format 2013-08-19 14:17:02 -04:00
Behdad Esfahbod
58d7416124 Add support for loading WOFF file format 2013-08-19 14:16:49 -04:00
Matt Fontaine
c33b0a22ef Add support for standard EBLC/EBDT embedded bitmaps 2013-08-19 14:15:46 -04:00
jvr
91bca42442 merging fixes & changes from delft-sprint-2012
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@611 4cde692c-a291-49d1-8350-778aa11640f8
2012-10-18 12:49:22 +00:00
pabs3
1344bc9b62 Fix typos: 'neccesary' should be 'necessary'.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@581 4cde692c-a291-49d1-8350-778aa11640f8
2010-01-09 09:12:11 +00:00
pabs3
7e91e776c9 Apply remainder of #1675210: add support for TrueType Collection (TTC) files.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@564 4cde692c-a291-49d1-8350-778aa11640f8
2009-02-22 08:55:00 +00:00
jvr
9be387c94f Use sys.byteorder, getting rid of ttLib.endian
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@527 4cde692c-a291-49d1-8350-778aa11640f8
2008-03-01 11:43:01 +00:00
jvr
2545f16b54 Make a hidden feature accessible: optionally ignore decompilation errors,
falling back to DefaultTable, retaining the binary data. It's a bit
dangerous to enable this by default, since it can lead to hiding other
errors or bugs (in the font or fonttools itself).


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@524 4cde692c-a291-49d1-8350-778aa11640f8
2008-03-01 09:30:17 +00:00
jvr
823f8cd15f Misc patches from rroberts:
fontTools/ttx.py
  # support virtual GIDs, support handling some GSUB offset overflows.

fontTools/ttlib/__init__.py
# 1) make getReverseGlyphMap  a public function; I find a reverse map
to often be useful
# 2) support virtual glyphs, e.g. references to GID's that are not in the font.
# Added the TTFont argument allowVID (default 0) to turn this off and on;
# added the arg requireReal ( default 0) so as to get the obvious
default behaviour when
# allowVID is 0 or 1, but to allow requiring a true GID when allowVID is 1.

fontTools/ttlib/tables/otBase.py
fontTools/ttlib/tables/otConverters.py
fontTools/ttlib/tables/otData.py
fontTools/ttlib/tables/otTables.py
# 1) speed optimization
# - collapse for loops
# - do not decompile extension lookups until a record is requested
from within the lookup.
# 2) handling offset overflows
# 3) support of extension lookups
# 4) Fixed FetauresParam converter class def so as to survive a font
that has this offset non-NULL.
# This fixes a stack dump.
# The data will now just get ignored


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@511 4cde692c-a291-49d1-8350-778aa11640f8
2006-10-21 14:12:38 +00:00
jvr
2e4cc02ca3 BasePen should not fail if a base glyph does not exist in the glyph set; added get() method to _TTGlyphSet class
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@497 4cde692c-a291-49d1-8350-778aa11640f8
2005-03-08 09:50:56 +00:00
jvr
79c1316d65 fixed buglet in GlyphSet support code
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@481 4cde692c-a291-49d1-8350-778aa11640f8
2005-01-24 10:06:45 +00:00
jvr
28ae196229 Refactored and enhanced table order support:
- Rewrote sorting function, it was really quite buggy.
- Added reorderFontTables() functions, which reorders the
  tables in a font at the sfnt level.
- TTFont.save() will now by default rewrite the font in the
  optimized order. This is done through a temp file since
  our dependency checking logic gets in the way of writing
  the tables in a predefined order directly (if table A depends
  on B, table B will always be compiled and written first, so
  this prevents A from showing up in the file before B).

sfnt.py:
- removed closeStream option from SFNTWriter.close(); it's better
  done by the caller (TTFont).


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@475 4cde692c-a291-49d1-8350-778aa11640f8
2004-11-16 10:37:59 +00:00
jvr
a4f6688ebe tweak & bugfix
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@474 4cde692c-a291-49d1-8350-778aa11640f8
2004-11-16 09:12:30 +00:00
jvr
1cff4cb190 workaround for buggy 2.2 mac support
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@436 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-28 18:23:43 +00:00
jvr
d028b7be3c Set .width in _TTGlyph.__init__ after all: these are just this wrapper
objects, _TTGlyphSet doesn't cache them, so setting .width in .draw()
is confusing to say the least.


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@430 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-26 19:00:38 +00:00
jvr
6f8f5ded55 fixed AttributeError in _TTGlyphSet.keys()
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@428 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-26 18:19:11 +00:00
jvr
1c9917bcf4 comment typo fix, reflow
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@422 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-25 13:20:38 +00:00
jvr
8df8f6385e TTFont now has a getGlyphSet() method, which will return a generic
GlyphSet. A GlyphSet is simply a dict-like object mapping glyph names
to glyphs. The glyphs in a GlyphSet have a .draw(pen) method and a
.width attribute. This provides a generic interface for drawing glyphs
or extracting outlines, and works both for CFF-based fonts and TT fonts.

See also fontTools.pens.basePen for a description of what makes a Pen
a Pen.


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@420 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-25 13:15:50 +00:00
jvr
700df03131 - attempted to sort tables in order recommended by spec.
TODO: need to fix table dependency order to complete this.
  (Read: would you mind posting a bug report regarding this?)


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@406 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-22 19:44:08 +00:00
jvr
0bb3ba5222 some modernizations
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@401 4cde692c-a291-49d1-8350-778aa11640f8
2003-08-22 18:52:22 +00:00
jvr
6ab979caca some (modified) progress bar support
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@294 4cde692c-a291-49d1-8350-778aa11640f8
2002-07-23 16:44:25 +00:00
jvr
9da0f12dec make dynamic table import work when importing from a zip file (for py2exe)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@277 4cde692c-a291-49d1-8350-778aa11640f8
2002-07-11 18:17:32 +00:00
jvr
d57c4346e5 It still wasn't right; I think the glyph order mess is now sufficiently cleaned up; at least compiling the result of ttdump -x glyf works again.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@265 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-25 15:28:48 +00:00
jvr
22f068929c make sure the glyph order is loaded when importing XML as the TTX file may not contain it (ttdump -t/ttcompile -i).
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@264 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-25 14:56:29 +00:00
jvr
e5ae28e842 whoops, the new GlyphOrder table stuff broke ttdump -s
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@263 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-25 08:22:22 +00:00
jvr
4e5af60930 CFF/T2 <-> XML roundtripping has begun!
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@254 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-24 09:58:04 +00:00
jvr
0011bb6910 big change: the glyph order is now dumped as a separate table and not as part of glyf (which didn't make much sense to begin with, but can't work at all in the case of CFF...)
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@252 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-23 09:42:45 +00:00
jvr
fe665777ea refactored saveXML() method
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@251 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-22 20:15:10 +00:00
jvr
0ecc433736 ignore tables we don't have upon saving as XML: this is indispensible for batch processing
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@237 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-15 07:50:06 +00:00
jvr
8307fa42cd a whole bunch of renames, purely stylistic
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@226 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-13 16:21:51 +00:00
jvr
0b63b28615 don't get glyph names from CFF it it's a CID-keyed font; invent glyph name on the spot if glyphID is too high (dubious change..).
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@224 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-13 11:26:38 +00:00
jvr
ea9dfa9fb2 renamed several items to use camelCase
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@220 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-12 17:14:50 +00:00
jvr
0f29303474 change how saveXML with splitTable=True works: it no longer creates a directory, and outputs a small file that references the individual table files
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@212 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-11 21:18:12 +00:00
jvr
22dcb9e6f9 a few cosmetic/style changes
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@206 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-10 19:03:34 +00:00
jvr
9f1e14bec9 Work around bootstrapping problem in TTFont._getGlyphNamesFromCmap():
If the cmap parser was the one to cause _getGlyphNamesFromCmap() to be
  called, no unicode cmap was found as it was just starting to get
  loaded. This resulted in different glyph names, depending on when
  the cmap parser was invoked.
Also added a bunch of comment describing what this method does.


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@204 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-05 11:29:33 +00:00
jvr
cf4b3b3d9b renamed _getTableData() to getTableData(); optimized getGlyphOrder() somewhat.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@202 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-05 09:48:31 +00:00
jvr
f707463256 added support for deleting tables: del f[tag]
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@201 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-04 22:04:02 +00:00
jvr
d04a3bb4f9 use version from fontTools.__init__.py
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@184 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-02 15:23:25 +00:00
jvr
ca4c45681e Complety revised the XML import code:
- use expat instead of xmlproc
- minor fixes here and there

Fixed bug in hmtx/vmtx code that only occured if all advances were equal.

FontTools now officially requires Python 2.0 or up, due to exapt and unicode.


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@179 4cde692c-a291-49d1-8350-778aa11640f8
2002-05-01 21:06:11 +00:00
Just
a556f51db5 don't allow duplicate glyph names when building names from cmap/agl
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@129 4cde692c-a291-49d1-8350-778aa11640f8
2001-02-23 21:58:57 +00:00
Just
0f675860ce improved support for writing to (in memory) streams
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@119 4cde692c-a291-49d1-8350-778aa11640f8
2000-10-02 07:51:42 +00:00
Just
c91a95189a minor changes
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@115 4cde692c-a291-49d1-8350-778aa11640f8
2000-08-23 12:31:52 +00:00
Just
509e2874aa disable decompilation exception catching: it causes too many debugging nightmares.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@82 4cde692c-a291-49d1-8350-778aa11640f8
2000-02-13 16:23:28 +00:00
Just
53602486b4 added support for instruction disassembly in saveXML()
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@73 4cde692c-a291-49d1-8350-778aa11640f8
2000-02-01 15:29:03 +00:00
Just
9682b4198b use ".ttx" extension instead of ".xml". TTX is not the name of the format, not the app...
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@61 4cde692c-a291-49d1-8350-778aa11640f8
2000-01-17 18:58:46 +00:00
Just
ff3499de66 - Added skiptTables argument to TTFont.saveXML(), to support -x option of tt2xml.py
- Fixed typo


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@52 4cde692c-a291-49d1-8350-778aa11640f8
2000-01-05 20:43:36 +00:00
Just
f8fd4777d2 Added code to fall back to the DefaultTable (and therefore to hex XML dumps) when an exception occurs during decompilation.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@44 4cde692c-a291-49d1-8350-778aa11640f8
2000-01-03 23:00:10 +00:00
Just
7dcc91674e - fixed broken agl import
- changed TTFOnt.saveXML + splitTables<>0 behavior: now expects a path to a directory


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@40 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-29 13:06:08 +00:00
Just
d28479b066 Added optional splitTables argument to TTFont.saveXML(). Set to non-zero, this will cause each table to be dumped to an idividual XML file.
git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@36 4cde692c-a291-49d1-8350-778aa11640f8
1999-12-27 19:48:21 +00:00