org.apache.fop.fonts.truetype.OFTableName Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fop Show documentation
Show all versions of fop Show documentation
Apache FOP (Formatting Objects Processor) is the world's first print formatter driven by XSL formatting objects (XSL-FO) and the world's first output independent formatter. It is a Java application that reads a formatting object (FO) tree and renders the resulting pages to a specified output. Output formats currently supported include PDF, PCL, PS, AFP, TIFF, PNG, SVG, XML (area tree representation), Print, AWT and TXT. The primary output target is PDF.
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id$ */
package org.apache.fop.fonts.truetype;
/**
* Represents table names as found in a TrueType font's Table Directory.
* TrueType fonts may have custom tables so we cannot use an enum.
*/
public final class OFTableName {
/** The first table in a TrueType font file containing metadata about other tables. */
public static final OFTableName TABLE_DIRECTORY = new OFTableName("tableDirectory");
/** Baseline data */
public static final OFTableName BASE = new OFTableName("BASE");
/** CFF data/ */
public static final OFTableName CFF = new OFTableName("CFF ");
/** Embedded bitmap data. */
public static final OFTableName EBDT = new OFTableName("EBDT");
/** Embedded bitmap location data. */
public static final OFTableName EBLC = new OFTableName("EBLC");
/** Embedded bitmap scaling data. */
public static final OFTableName EBSC = new OFTableName("EBSC");
/** A FontForge specific table. */
public static final OFTableName FFTM = new OFTableName("FFTM");
/** Divides glyphs into various classes that make using the GPOS/GSUB tables easier. */
public static final OFTableName GDEF = new OFTableName("GDEF");
/** Provides kerning information, mark-to-base, etc. for opentype fonts. */
public static final OFTableName GPOS = new OFTableName("GPOS");
/** Provides ligature information, swash, etc. for opentype fonts. */
public static final OFTableName GSUB = new OFTableName("GSUB");
/** Linear threshold table. */
public static final OFTableName LTSH = new OFTableName("LTSH");
/** OS/2 and Windows specific metrics. */
public static final OFTableName OS2 = new OFTableName("OS/2");
/** PCL 5 data. */
public static final OFTableName PCLT = new OFTableName("PCLT");
/** Vertical Device Metrics table. */
public static final OFTableName VDMX = new OFTableName("VDMX");
/** Character to glyph mapping. */
public static final OFTableName CMAP = new OFTableName("cmap");
/** Control Value Table. */
public static final OFTableName CVT = new OFTableName("cvt ");
/** Font program. */
public static final OFTableName FPGM = new OFTableName("fpgm");
/** Grid-fitting and scan conversion procedure (grayscale). */
public static final OFTableName GASP = new OFTableName("gasp");
/** Glyph data. */
public static final OFTableName GLYF = new OFTableName("glyf");
/** Horizontal device metrics. */
public static final OFTableName HDMX = new OFTableName("hdmx");
/** Font header. */
public static final OFTableName HEAD = new OFTableName("head");
/** Horizontal header. */
public static final OFTableName HHEA = new OFTableName("hhea");
/** Horizontal metrics. */
public static final OFTableName HMTX = new OFTableName("hmtx");
/** Kerning. */
public static final OFTableName KERN = new OFTableName("kern");
/** Index to location. */
public static final OFTableName LOCA = new OFTableName("loca");
/** Maximum profile. */
public static final OFTableName MAXP = new OFTableName("maxp");
/** Naming table. */
public static final OFTableName NAME = new OFTableName("name");
/** PostScript information. */
public static final OFTableName POST = new OFTableName("post");
/** CVT Program. */
public static final OFTableName PREP = new OFTableName("prep");
/** Vertical Metrics header. */
public static final OFTableName VHEA = new OFTableName("vhea");
/** Vertical Metrics. */
public static final OFTableName VMTX = new OFTableName("vmtx");
private final String name;
private OFTableName(String name) {
this.name = name;
}
/**
* Returns the name of the table as it should be in the Directory Table.
*/
public String getName() {
return name;
}
/**
* Returns an instance of this class corresponding to the given string representation.
* @param tableName table name as in the Table Directory
* @return TTFTableName
*/
public static OFTableName getValue(String tableName) {
if (tableName != null) {
return new OFTableName(tableName);
}
throw new IllegalArgumentException("A TrueType font table name must not be null");
}
@Override
public int hashCode() {
return name.hashCode();
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof OFTableName)) {
return false;
}
OFTableName to = (OFTableName) o;
return this.name.equals(to.getName());
}
@Override
public String toString() {
return name;
}
}