blob: f02eb2b49575cb34a5b4a242549e1a12309b487d [file] [log] [blame]
/*
* 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;
import java.net.URI;
import java.util.Map;
import java.util.Set;
/**
* This interface is used to set the values of a font during configuration time.
*/
public interface MutableFont {
/**
* Sets the URI from which this font is or will be loaded.
* @param uri URI from which font is or will be loaded
*/
void setFontURI(URI uri);
/**
* Sets the "PostScript" font name (Example: "Helvetica-BoldOblique").
* @param name font name
*/
void setFontName(String name);
/**
* Sets the font's full name (usually the one that the operating system displays). Example:
* "Helvetica Bold Oblique".
* @param name font' full name
*/
void setFullName(String name);
/**
* Sets the font's family names (Example: "Helvetica").
* @param names the font's family names (a Set of Strings)
*/
void setFamilyNames(Set<String> names);
/**
* Sets the URI to the embeddable font.
* @param path URI to the font
*/
void setEmbedURI(URI path);
/**
* Sets the resource name of the embeddable font file.
* @param name resource name
*/
void setEmbedResourceName(String name);
/**
* Sets the embedding mode.
* @param embeddingMode the embedding mode
*/
void setEmbeddingMode(EmbeddingMode embeddingMode);
/**
* Sets the capital height value.
* @param capHeight capital height
*/
void setCapHeight(int capHeight);
/**
* Sets the ascent value.
* @param ascender ascent height
*/
void setAscender(int ascender);
/**
* Sets the descent value.
* @param descender descent value
*/
void setDescender(int descender);
/**
* Sets the font's bounding box
* @param bbox bounding box
*/
void setFontBBox(int[] bbox);
/**
* Sets the font's flags
* @param flags flags
*/
void setFlags(int flags);
/**
* Sets the font's StemV value.
* @param stemV StemV
*/
void setStemV(int stemV);
/**
* Sets the font's italic angle.
* @param italicAngle italic angle
*/
void setItalicAngle(int italicAngle);
/**
* Sets the font's default width
* @param width default width
*/
void setMissingWidth(int width);
/**
* Sets the font type.
* @param fontType font type
*/
void setFontType(FontType fontType);
/**
* Sets the index of the first character in the character table.
* @param index index of first character
*/
void setFirstChar(int index);
/**
* Sets the index of the last character in the character table.
* @param index index of the last character
*/
void setLastChar(int index);
/**
* Enables/disabled kerning.
* @param enabled True if kerning should be enabled if available
*/
void setKerningEnabled(boolean enabled);
/**
* Enables/disabled advanced typographic features.
* @param enabled true if advanced typographic features should be enabled if available
*/
void setAdvancedEnabled(boolean enabled);
/**
* Adds an entry to the kerning table.
* @param key Kerning key
* @param value Kerning value
*/
void putKerningEntry(Integer key, Map<Integer, Integer> value);
}