Save This Page
Home » openjdk-7 » java » awt » font » [javadoc | source]
    1   /*
    2    * Copyright 1997-1999 Sun Microsystems, Inc.  All Rights Reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   
   26   package java.awt.font;
   27   
   28   /**
   29    * The <code>OpenType</code> interface represents OpenType and
   30    * TrueType fonts.  This interface makes it possible to obtain
   31    * <i>sfnt</i> tables from the font.  A particular
   32    * <code>Font</code> object can implement this interface.
   33    * <p>
   34    * For more information on TrueType and OpenType fonts, see the
   35    * OpenType specification.
   36    * ( <a href=http://www.microsoft.com/typography/otspec/">http://www.microsoft.com/typography/otspec/l</a> ).
   37    */
   38   public interface OpenType {
   39   
   40     /* 51 tag types so far */
   41   
   42     /**
   43      * Character to glyph mapping.  Table tag "cmap" in the Open
   44      * Type Specification.
   45      */
   46     public final static int       TAG_CMAP        = 0x636d6170;
   47   
   48     /**
   49      * Font header.  Table tag "head" in the Open
   50      * Type Specification.
   51      */
   52     public final static int       TAG_HEAD        = 0x68656164;
   53   
   54     /**
   55      * Naming table.  Table tag "name" in the Open
   56      * Type Specification.
   57      */
   58     public final static int       TAG_NAME        = 0x6e616d65;
   59   
   60     /**
   61      * Glyph data.  Table tag "glyf" in the Open
   62      * Type Specification.
   63      */
   64     public final static int       TAG_GLYF        = 0x676c7966;
   65   
   66     /**
   67      * Maximum profile.  Table tag "maxp" in the Open
   68      * Type Specification.
   69      */
   70     public final static int       TAG_MAXP        = 0x6d617870;
   71   
   72     /**
   73      * CVT preprogram.  Table tag "prep" in the Open
   74      * Type Specification.
   75      */
   76     public final static int       TAG_PREP        = 0x70726570;
   77   
   78     /**
   79      * Horizontal metrics.  Table tag "hmtx" in the Open
   80      * Type Specification.
   81      */
   82     public final static int       TAG_HMTX        = 0x686d7478;
   83   
   84     /**
   85      * Kerning.  Table tag "kern" in the Open
   86      * Type Specification.
   87      */
   88     public final static int       TAG_KERN        = 0x6b65726e;
   89   
   90     /**
   91      * Horizontal device metrics.  Table tag "hdmx" in the Open
   92      * Type Specification.
   93      */
   94     public final static int       TAG_HDMX        = 0x68646d78;
   95   
   96     /**
   97      * Index to location.  Table tag "loca" in the Open
   98      * Type Specification.
   99      */
  100     public final static int       TAG_LOCA        = 0x6c6f6361;
  101   
  102     /**
  103      * PostScript Information.  Table tag "post" in the Open
  104      * Type Specification.
  105      */
  106     public final static int       TAG_POST        = 0x706f7374;
  107   
  108     /**
  109      * OS/2 and Windows specific metrics.  Table tag "OS/2"
  110      * in the Open Type Specification.
  111      */
  112     public final static int       TAG_OS2 = 0x4f532f32;
  113   
  114     /**
  115      * Control value table.  Table tag "cvt "
  116      * in the Open Type Specification.
  117      */
  118     public final static int       TAG_CVT = 0x63767420;
  119   
  120     /**
  121      * Grid-fitting and scan conversion procedure.  Table tag
  122      * "gasp" in the Open Type Specification.
  123      */
  124     public final static int       TAG_GASP        = 0x67617370;
  125   
  126     /**
  127      * Vertical device metrics.  Table tag "VDMX" in the Open
  128      * Type Specification.
  129      */
  130     public final static int       TAG_VDMX        = 0x56444d58;
  131   
  132     /**
  133      * Vertical metrics.  Table tag "vmtx" in the Open
  134      * Type Specification.
  135      */
  136     public final static int       TAG_VMTX        = 0x766d7478;
  137   
  138     /**
  139      * Vertical metrics header.  Table tag "vhea" in the Open
  140      * Type Specification.
  141      */
  142     public final static int       TAG_VHEA        = 0x76686561;
  143   
  144     /**
  145      * Horizontal metrics header.  Table tag "hhea" in the Open
  146      * Type Specification.
  147      */
  148     public final static int       TAG_HHEA        = 0x68686561;
  149   
  150     /**
  151      * Adobe Type 1 font data.  Table tag "typ1" in the Open
  152      * Type Specification.
  153      */
  154     public final static int       TAG_TYP1        = 0x74797031;
  155   
  156     /**
  157      * Baseline table.  Table tag "bsln" in the Open
  158      * Type Specification.
  159      */
  160     public final static int       TAG_BSLN        = 0x62736c6e;
  161   
  162     /**
  163      * Glyph substitution.  Table tag "GSUB" in the Open
  164      * Type Specification.
  165      */
  166     public final static int       TAG_GSUB        = 0x47535542;
  167   
  168     /**
  169      * Digital signature.  Table tag "DSIG" in the Open
  170      * Type Specification.
  171      */
  172     public final static int       TAG_DSIG        = 0x44534947;
  173   
  174     /**
  175      * Font program.   Table tag "fpgm" in the Open
  176      * Type Specification.
  177      */
  178     public final static int       TAG_FPGM        = 0x6670676d;
  179   
  180     /**
  181      * Font variation.   Table tag "fvar" in the Open
  182      * Type Specification.
  183      */
  184     public final static int       TAG_FVAR        = 0x66766172;
  185   
  186     /**
  187      * Glyph variation.  Table tag "gvar" in the Open
  188      * Type Specification.
  189      */
  190     public final static int       TAG_GVAR        = 0x67766172;
  191   
  192     /**
  193      * Compact font format (Type1 font).  Table tag
  194      * "CFF " in the Open Type Specification.
  195      */
  196     public final static int       TAG_CFF = 0x43464620;
  197   
  198     /**
  199      * Multiple master supplementary data.  Table tag
  200      * "MMSD" in the Open Type Specification.
  201      */
  202     public final static int       TAG_MMSD        = 0x4d4d5344;
  203   
  204     /**
  205      * Multiple master font metrics.  Table tag
  206      * "MMFX" in the Open Type Specification.
  207      */
  208     public final static int       TAG_MMFX        = 0x4d4d4658;
  209   
  210     /**
  211      * Baseline data.  Table tag "BASE" in the Open
  212      * Type Specification.
  213      */
  214     public final static int       TAG_BASE        = 0x42415345;
  215   
  216     /**
  217      * Glyph definition.  Table tag "GDEF" in the Open
  218      * Type Specification.
  219      */
  220     public final static int       TAG_GDEF        = 0x47444546;
  221   
  222     /**
  223      * Glyph positioning.  Table tag "GPOS" in the Open
  224      * Type Specification.
  225      */
  226     public final static int       TAG_GPOS        = 0x47504f53;
  227   
  228     /**
  229      * Justification.  Table tag "JSTF" in the Open
  230      * Type Specification.
  231      */
  232     public final static int       TAG_JSTF        = 0x4a535446;
  233   
  234     /**
  235      * Embedded bitmap data.  Table tag "EBDT" in the Open
  236      * Type Specification.
  237      */
  238     public final static int       TAG_EBDT        = 0x45424454;
  239   
  240     /**
  241      * Embedded bitmap location.  Table tag "EBLC" in the Open
  242      * Type Specification.
  243      */
  244     public final static int       TAG_EBLC        = 0x45424c43;
  245   
  246     /**
  247      * Embedded bitmap scaling.  Table tag "EBSC" in the Open
  248      * Type Specification.
  249      */
  250     public final static int       TAG_EBSC        = 0x45425343;
  251   
  252     /**
  253      * Linear threshold.  Table tag "LTSH" in the Open
  254      * Type Specification.
  255      */
  256     public final static int       TAG_LTSH        = 0x4c545348;
  257   
  258     /**
  259      * PCL 5 data.  Table tag "PCLT" in the Open
  260      * Type Specification.
  261      */
  262     public final static int       TAG_PCLT        = 0x50434c54;
  263   
  264     /**
  265      * Accent attachment.  Table tag "acnt" in the Open
  266      * Type Specification.
  267      */
  268     public final static int       TAG_ACNT        = 0x61636e74;
  269   
  270     /**
  271      * Axis variaiton.  Table tag "avar" in the Open
  272      * Type Specification.
  273      */
  274     public final static int       TAG_AVAR        = 0x61766172;
  275   
  276     /**
  277      * Bitmap data.  Table tag "bdat" in the Open
  278      * Type Specification.
  279      */
  280     public final static int       TAG_BDAT        = 0x62646174;
  281   
  282     /**
  283      * Bitmap location.  Table tag "bloc" in the Open
  284      * Type Specification.
  285      */
  286     public final static int       TAG_BLOC        = 0x626c6f63;
  287   
  288      /**
  289       * CVT variation.  Table tag "cvar" in the Open
  290       * Type Specification.
  291       */
  292     public final static int       TAG_CVAR        = 0x63766172;
  293   
  294     /**
  295      * Feature name.  Table tag "feat" in the Open
  296       * Type Specification.
  297      */
  298     public final static int       TAG_FEAT        = 0x66656174;
  299   
  300     /**
  301      * Font descriptors.  Table tag "fdsc" in the Open
  302      * Type Specification.
  303      */
  304     public final static int       TAG_FDSC        = 0x66647363;
  305   
  306     /**
  307      * Font metrics.  Table tag "fmtx" in the Open
  308      * Type Specification.
  309      */
  310     public final static int       TAG_FMTX        = 0x666d7478;
  311   
  312     /**
  313      * Justification.  Table tag "just" in the Open
  314      * Type Specification.
  315      */
  316     public final static int       TAG_JUST        = 0x6a757374;
  317   
  318     /**
  319      * Ligature caret.   Table tag "lcar" in the Open
  320      * Type Specification.
  321      */
  322     public final static int       TAG_LCAR        = 0x6c636172;
  323   
  324     /**
  325      * Glyph metamorphosis.  Table tag "mort" in the Open
  326      * Type Specification.
  327      */
  328     public final static int       TAG_MORT        = 0x6d6f7274;
  329   
  330     /**
  331      * Optical bounds.  Table tag "opbd" in the Open
  332      * Type Specification.
  333      */
  334     public final static int       TAG_OPBD        = 0x6d6f7274;
  335   
  336     /**
  337      * Glyph properties.  Table tag "prop" in the Open
  338      * Type Specification.
  339      */
  340     public final static int       TAG_PROP        = 0x70726f70;
  341   
  342     /**
  343      * Tracking.  Table tag "trak" in the Open
  344      * Type Specification.
  345      */
  346     public final static int       TAG_TRAK        = 0x7472616b;
  347   
  348     /**
  349      * Returns the version of the <code>OpenType</code> font.
  350      * 1.0 is represented as 0x00010000.
  351      * @return the version of the <code>OpenType</code> font.
  352      */
  353     public int getVersion();
  354   
  355     /**
  356      * Returns the table as an array of bytes for a specified tag.
  357      * Tags for sfnt tables include items like <i>cmap</i>,
  358      * <i>name</i> and <i>head</i>.  The <code>byte</code> array
  359      * returned is a copy of the font data in memory.
  360      * @param     sfntTag a four-character code as a 32-bit integer
  361      * @return a <code>byte</code> array that is the table that
  362      * contains the font data corresponding to the specified
  363      * tag.
  364      */
  365     public byte[] getFontTable(int sfntTag);
  366   
  367     /**
  368      * Returns the table as an array of bytes for a specified tag.
  369      * Tags for sfnt tables include items like <i>cmap</i>,
  370      * <i>name</i> and <i>head</i>.  The byte array returned is a
  371      * copy of the font data in memory.
  372      * @param     strSfntTag a four-character code as a
  373      *            <code>String</code>
  374      * @return a <code>byte</code> array that is the table that
  375      * contains the font data corresponding to the specified
  376      * tag.
  377      */
  378     public byte[] getFontTable(String strSfntTag);
  379   
  380     /**
  381      * Returns a subset of the table as an array of bytes
  382      * for a specified tag.  Tags for sfnt tables include
  383      * items like <i>cmap</i>, <i>name</i> and <i>head</i>.
  384      * The byte array returned is a copy of the font data in
  385      * memory.
  386      * @param     sfntTag a four-character code as a 32-bit integer
  387      * @param     offset index of first byte to return from table
  388      * @param     count number of bytes to return from table
  389      * @return a subset of the table corresponding to
  390      *            <code>sfntTag</code> and containing the bytes
  391      *            starting at <code>offset</code> byte and including
  392      *            <code>count</code> bytes.
  393      */
  394     public byte[] getFontTable(int sfntTag, int offset, int count);
  395   
  396     /**
  397      * Returns a subset of the table as an array of bytes
  398      * for a specified tag.  Tags for sfnt tables include items
  399      * like <i>cmap</i>, <i>name</i> and <i>head</i>. The
  400      * <code>byte</code> array returned is a copy of the font
  401      * data in memory.
  402      * @param     strSfntTag a four-character code as a
  403      * <code>String</code>
  404      * @param     offset index of first byte to return from table
  405      * @param     count  number of bytes to return from table
  406      * @return a subset of the table corresponding to
  407      *            <code>strSfntTag</code> and containing the bytes
  408      *            starting at <code>offset</code> byte and including
  409      *            <code>count</code> bytes.
  410      */
  411     public byte[] getFontTable(String strSfntTag, int offset, int count);
  412   
  413     /**
  414      * Returns the size of the table for a specified tag. Tags for sfnt
  415      * tables include items like <i>cmap</i>, <i>name</i> and <i>head</i>.
  416      * @param     sfntTag a four-character code as a 32-bit integer
  417      * @return the size of the table corresponding to the specified
  418      * tag.
  419      */
  420     public int getFontTableSize(int sfntTag);
  421   
  422     /**
  423      * Returns the size of the table for a specified tag. Tags for sfnt
  424      * tables include items like <i>cmap</i>, <i>name</i> and <i>head</i>.
  425      * @param     strSfntTag a four-character code as a
  426      * <code>String</code>
  427      * @return the size of the table corresponding to the specified tag.
  428      */
  429     public int getFontTableSize(String strSfntTag);
  430   
  431   
  432   }

Save This Page
Home » openjdk-7 » java » awt » font » [javadoc | source]