fonttools/Documentation/fontToolsDocs/fontTools.ttLib.sfnt.html
Erik van Blokland 3646055ea2 initial import
git-svn-id: http://svn.robofab.com/trunk@1 b5fa9d6c-a76f-4ffd-b3cb-f825fc41095c
2008-01-07 17:40:34 +00:00

129 lines
8.5 KiB
HTML

<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module fontTools.ttLib.sfnt</title>
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="fontTools.html"><font color="#ffffff">fontTools</font></a>.<a href="fontTools.ttLib.html"><font color="#ffffff">ttLib</font></a>.sfnt</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/code/fontTools/Lib/fontTools/ttLib/sfnt.py">/code/fontTools/Lib/fontTools/ttLib/sfnt.py</a></font></td></tr></table>
<p><tt>ttLib/sfnt.py&nbsp;--&nbsp;low-level&nbsp;module&nbsp;to&nbsp;deal&nbsp;with&nbsp;the&nbsp;sfnt&nbsp;file&nbsp;format.<br>
&nbsp;<br>
Defines&nbsp;two&nbsp;public&nbsp;classes:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SFNTReader">SFNTReader</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#SFNTWriter">SFNTWriter</a><br>
&nbsp;<br>
(Normally&nbsp;you&nbsp;don't&nbsp;have&nbsp;to&nbsp;use&nbsp;these&nbsp;classes&nbsp;explicitly;&nbsp;they&nbsp;are&nbsp;<br>
used&nbsp;automatically&nbsp;by&nbsp;ttLib.TTFont.)<br>
&nbsp;<br>
The&nbsp;reading&nbsp;and&nbsp;writing&nbsp;of&nbsp;sfnt&nbsp;files&nbsp;is&nbsp;separated&nbsp;in&nbsp;two&nbsp;distinct&nbsp;<br>
classes,&nbsp;since&nbsp;whenever&nbsp;to&nbsp;number&nbsp;of&nbsp;tables&nbsp;changes&nbsp;or&nbsp;whenever<br>
a&nbsp;table's&nbsp;length&nbsp;chages&nbsp;you&nbsp;need&nbsp;to&nbsp;rewrite&nbsp;the&nbsp;whole&nbsp;file&nbsp;anyway.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="Numeric.html">Numeric</a><br>
</td><td width="25%" valign=top><a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="sstruct.html">sstruct</a><br>
</td><td width="25%" valign=top><a href="struct.html">struct</a><br>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="fontTools.ttLib.sfnt.html#SFNTDirectoryEntry">SFNTDirectoryEntry</a>
</font></dt><dt><font face="helvetica, arial"><a href="fontTools.ttLib.sfnt.html#SFNTReader">SFNTReader</a>
</font></dt><dt><font face="helvetica, arial"><a href="fontTools.ttLib.sfnt.html#SFNTWriter">SFNTWriter</a>
</font></dt></dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="SFNTDirectoryEntry">class <strong>SFNTDirectoryEntry</strong></a></font></td></tr>
<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="SFNTDirectoryEntry-__repr__"><strong>__repr__</strong></a>(self)</dt></dl>
<dl><dt><a name="SFNTDirectoryEntry-fromFile"><strong>fromFile</strong></a>(self, file)</dt></dl>
<dl><dt><a name="SFNTDirectoryEntry-fromString"><strong>fromString</strong></a>(self, str)</dt></dl>
<dl><dt><a name="SFNTDirectoryEntry-toString"><strong>toString</strong></a>(self)</dt></dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="SFNTReader">class <strong>SFNTReader</strong></a></font></td></tr>
<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="SFNTReader-__delitem__"><strong>__delitem__</strong></a>(self, tag)</dt></dl>
<dl><dt><a name="SFNTReader-__getitem__"><strong>__getitem__</strong></a>(self, tag)</dt><dd><tt>Fetch&nbsp;the&nbsp;raw&nbsp;table&nbsp;data.</tt></dd></dl>
<dl><dt><a name="SFNTReader-__init__"><strong>__init__</strong></a>(self, file, checkChecksums<font color="#909090">=1</font>)</dt></dl>
<dl><dt><a name="SFNTReader-close"><strong>close</strong></a>(self)</dt></dl>
<dl><dt><a name="SFNTReader-has_key"><strong>has_key</strong></a>(self, tag)</dt></dl>
<dl><dt><a name="SFNTReader-keys"><strong>keys</strong></a>(self)</dt></dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="SFNTWriter">class <strong>SFNTWriter</strong></a></font></td></tr>
<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="SFNTWriter-__init__"><strong>__init__</strong></a>(self, file, numTables, sfntVersion<font color="#909090">='<font color="#c040c0">\x00\x01\x00\x00</font>'</font>)</dt></dl>
<dl><dt><a name="SFNTWriter-__setitem__"><strong>__setitem__</strong></a>(self, tag, data)</dt><dd><tt>Write&nbsp;raw&nbsp;table&nbsp;data&nbsp;to&nbsp;disk.</tt></dd></dl>
<dl><dt><a name="SFNTWriter-calcMasterChecksum"><strong>calcMasterChecksum</strong></a>(self, directory)</dt></dl>
<dl><dt><a name="SFNTWriter-close"><strong>close</strong></a>(self)</dt><dd><tt>All&nbsp;tables&nbsp;must&nbsp;have&nbsp;been&nbsp;written&nbsp;to&nbsp;disk.&nbsp;Now&nbsp;write&nbsp;the<br>
directory.</tt></dd></dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-calcChecksum"><strong>calcChecksum</strong></a>(data, start<font color="#909090">=0</font>)</dt><dd><tt>Calculate&nbsp;the&nbsp;checksum&nbsp;for&nbsp;an&nbsp;arbitrary&nbsp;block&nbsp;of&nbsp;data.<br>
Optionally&nbsp;takes&nbsp;a&nbsp;'start'&nbsp;argument,&nbsp;which&nbsp;allows&nbsp;you&nbsp;to<br>
calculate&nbsp;a&nbsp;checksum&nbsp;in&nbsp;chunks&nbsp;by&nbsp;feeding&nbsp;it&nbsp;a&nbsp;previous<br>
result.<br>
&nbsp;<br>
If&nbsp;the&nbsp;data&nbsp;length&nbsp;is&nbsp;not&nbsp;a&nbsp;multiple&nbsp;of&nbsp;four,&nbsp;it&nbsp;assumes<br>
it&nbsp;is&nbsp;to&nbsp;be&nbsp;padded&nbsp;with&nbsp;null&nbsp;byte.</tt></dd></dl>
<dl><dt><a name="-getSearchRange"><strong>getSearchRange</strong></a>(n)</dt><dd><tt>Calculate&nbsp;searchRange,&nbsp;entrySelector,&nbsp;rangeShift&nbsp;for&nbsp;the<br>
sfnt&nbsp;directory.&nbsp;'n'&nbsp;is&nbsp;the&nbsp;number&nbsp;of&nbsp;tables.</tt></dd></dl>
<dl><dt><a name="-maxPowerOfTwo"><strong>maxPowerOfTwo</strong></a>(x)</dt><dd><tt>Return&nbsp;the&nbsp;highest&nbsp;exponent&nbsp;of&nbsp;two,&nbsp;so&nbsp;that<br>
(2&nbsp;**&nbsp;exponent)&nbsp;&lt;=&nbsp;x</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>sfntDirectoryEntryFormat</strong> = '<font color="#c040c0">\n\t\t</font>&gt; # big endian<font color="#c040c0">\n\t\t</font>tag: 4s<font color="#c040c0">\n\t\t</font>checkSum: l<font color="#c040c0">\n\t\t</font>offset: l<font color="#c040c0">\n\t\t</font>length: l<font color="#c040c0">\n</font>'<br>
<strong>sfntDirectoryEntrySize</strong> = 16<br>
<strong>sfntDirectoryFormat</strong> = '<font color="#c040c0">\n\t\t</font>&gt; # big endian<font color="#c040c0">\n\t\t</font>sfntVersion: 4s<font color="#c040c0">\n\t\t</font>numTabl...<font color="#c040c0">\t</font>rangeShift: H # numTables*16-searchRange<font color="#c040c0">\n</font>'<br>
<strong>sfntDirectorySize</strong> = 12</td></tr></table>
</body></html>