OpenType.java revision 0
0N/A * Copyright 1997-1999 Sun Microsystems, Inc. All Rights Reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 0N/A * published by the Free Software Foundation. Sun designates this 0N/A * particular file as subject to the "Classpath" exception as provided 0N/A * by Sun in the LICENSE file that accompanied this code. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 0N/A * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 0N/A * CA 95054 USA or visit www.sun.com if you need additional information or 0N/A * have any questions. 0N/A * The <code>OpenType</code> interface represents OpenType and 0N/A * TrueType fonts. This interface makes it possible to obtain 0N/A * <i>sfnt</i> tables from the font. A particular 0N/A * <code>Font</code> object can implement this interface. 0N/A * For more information on TrueType fonts, see the 0N/A * Apple TrueType Reference Manual 0N/A /* 51 tag types so far */ 0N/A * Character to glyph mapping. Table tag "cmap" in the Open 0N/A * Type Specification. 0N/A * Font header. Table tag "head" in the Open 0N/A * Type Specification. 0N/A * Naming table. Table tag "name" in the Open 0N/A * Type Specification. 0N/A * Glyph data. Table tag "glyf" in the Open 0N/A * Type Specification. 0N/A * Maximum profile. Table tag "maxp" in the Open 0N/A * Type Specification. 0N/A * CVT preprogram. Table tag "prep" in the Open 0N/A * Type Specification. 0N/A * Horizontal metrics. Table tag "hmtx" in the Open 0N/A * Type Specification. 0N/A * Kerning. Table tag "kern" in the Open 0N/A * Type Specification. 0N/A * Horizontal device metrics. Table tag "hdmx" in the Open 0N/A * Type Specification. 0N/A * Index to location. Table tag "loca" in the Open 0N/A * Type Specification. 0N/A * PostScript Information. Table tag "post" in the Open 0N/A * Type Specification. 0N/A * OS/2 and Windows specific metrics. Table tag "OS/2" 0N/A * in the Open Type Specification. 0N/A * Control value table. Table tag "cvt " 0N/A * in the Open Type Specification. 0N/A * Grid-fitting and scan conversion procedure. Table tag 0N/A * "gasp" in the Open Type Specification. 0N/A * Vertical device metrics. Table tag "VDMX" in the Open 0N/A * Type Specification. 0N/A * Vertical metrics. Table tag "vmtx" in the Open 0N/A * Type Specification. 0N/A * Vertical metrics header. Table tag "vhea" in the Open 0N/A * Type Specification. 0N/A * Horizontal metrics header. Table tag "hhea" in the Open 0N/A * Type Specification. 0N/A * Adobe Type 1 font data. Table tag "typ1" in the Open 0N/A * Type Specification. 0N/A * Baseline table. Table tag "bsln" in the Open 0N/A * Type Specification. 0N/A * Glyph substitution. Table tag "GSUB" in the Open 0N/A * Type Specification. 0N/A * Digital signature. Table tag "DSIG" in the Open 0N/A * Type Specification. 0N/A * Font program. Table tag "fpgm" in the Open 0N/A * Type Specification. 0N/A * Font variation. Table tag "fvar" in the Open 0N/A * Type Specification. 0N/A * Glyph variation. Table tag "gvar" in the Open 0N/A * Type Specification. 0N/A * Compact font format (Type1 font). Table tag 0N/A * "CFF " in the Open Type Specification. 0N/A * Multiple master supplementary data. Table tag 0N/A * "MMSD" in the Open Type Specification. 0N/A * Multiple master font metrics. Table tag 0N/A * "MMFX" in the Open Type Specification. 0N/A * Baseline data. Table tag "BASE" in the Open 0N/A * Type Specification. 0N/A * Glyph definition. Table tag "GDEF" in the Open 0N/A * Type Specification. 0N/A * Glyph positioning. Table tag "GPOS" in the Open 0N/A * Type Specification. 0N/A * Justification. Table tag "JSTF" in the Open 0N/A * Type Specification. 0N/A * Embedded bitmap data. Table tag "EBDT" in the Open 0N/A * Type Specification. 0N/A * Embedded bitmap location. Table tag "EBLC" in the Open 0N/A * Type Specification. 0N/A * Embedded bitmap scaling. Table tag "EBSC" in the Open 0N/A * Type Specification. 0N/A * Linear threshold. Table tag "LTSH" in the Open 0N/A * Type Specification. 0N/A * PCL 5 data. Table tag "PCLT" in the Open 0N/A * Type Specification. 0N/A * Accent attachment. Table tag "acnt" in the Open 0N/A * Type Specification. 0N/A * Axis variaiton. Table tag "avar" in the Open 0N/A * Type Specification. 0N/A * Bitmap data. Table tag "bdat" in the Open 0N/A * Type Specification. 0N/A * Bitmap location. Table tag "bloc" in the Open 0N/A * Type Specification. 0N/A * CVT variation. Table tag "cvar" in the Open 0N/A * Type Specification. 0N/A * Feature name. Table tag "feat" in the Open 0N/A * Type Specification. 0N/A * Font descriptors. Table tag "fdsc" in the Open 0N/A * Type Specification. 0N/A * Font metrics. Table tag "fmtx" in the Open 0N/A * Type Specification. 0N/A * Justification. Table tag "just" in the Open 0N/A * Type Specification. 0N/A * Ligature caret. Table tag "lcar" in the Open 0N/A * Type Specification. 0N/A * Glyph metamorphosis. Table tag "mort" in the Open 0N/A * Type Specification. 0N/A * Optical bounds. Table tag "opbd" in the Open 0N/A * Type Specification. 0N/A * Glyph properties. Table tag "prop" in the Open 0N/A * Type Specification. 0N/A * Tracking. Table tag "trak" in the Open 0N/A * Type Specification. 0N/A * Returns the version of the <code>OpenType</code> font. 0N/A * 1.0 is represented as 0x00010000. 0N/A * @return the version of the <code>OpenType</code> font. 0N/A * Returns the table as an array of bytes for a specified tag. 0N/A * Tags for sfnt tables include items like <i>cmap</i>, 0N/A * <i>name</i> and <i>head</i>. The <code>byte</code> array 0N/A * returned is a copy of the font data in memory. 0N/A * @param sfntTag a four-character code as a 32-bit integer 0N/A * @return a <code>byte</code> array that is the table that 0N/A * contains the font data corresponding to the specified 0N/A * Returns the table as an array of bytes for a specified tag. 0N/A * Tags for sfnt tables include items like <i>cmap</i>, 0N/A * <i>name</i> and <i>head</i>. The byte array returned is a 0N/A * copy of the font data in memory. 0N/A * @param strSfntTag a four-character code as a 0N/A * <code>String</code> 0N/A * @return a <code>byte</code> array that is the table that 0N/A * contains the font data corresponding to the specified 0N/A * Returns a subset of the table as an array of bytes 0N/A * for a specified tag. Tags for sfnt tables include 0N/A * items like <i>cmap</i>, <i>name</i> and <i>head</i>. 0N/A * The byte array returned is a copy of the font data in 0N/A * @param sfntTag a four-character code as a 32-bit integer 0N/A * @param offset index of first byte to return from table 0N/A * @param count number of bytes to return from table 0N/A * @return a subset of the table corresponding to 0N/A * <code>sfntTag</code> and containing the bytes 0N/A * starting at <code>offset</code> byte and including 0N/A * <code>count</code> bytes. 0N/A * Returns a subset of the table as an array of bytes 0N/A * for a specified tag. Tags for sfnt tables include items 0N/A * like <i>cmap</i>, <i>name</i> and <i>head</i>. The 0N/A * <code>byte</code> array returned is a copy of the font 0N/A * @param strSfntTag a four-character code as a 0N/A * <code>String</code> 0N/A * @param offset index of first byte to return from table 0N/A * @param count number of bytes to return from table 0N/A * @return a subset of the table corresponding to 0N/A * <code>strSfntTag</code> and containing the bytes 0N/A * starting at <code>offset</code> byte and including 0N/A * <code>count</code> bytes. 0N/A * Returns the size of the table for a specified tag. Tags for sfnt 0N/A * tables include items like <i>cmap</i>, <i>name</i> and <i>head</i>. 0N/A * @param sfntTag a four-character code as a 32-bit integer 0N/A * @return the size of the table corresponding to the specified 0N/A * Returns the size of the table for a specified tag. Tags for sfnt 0N/A * tables include items like <i>cmap</i>, <i>name</i> and <i>head</i>. 0N/A * @param strSfntTag a four-character code as a 0N/A * <code>String</code> 0N/A * @return the size of the table corresponding to the specified tag.