Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* NOTICE: This file has been changed by Plutext Pty Ltd for use in docx4j.
   * The package name has been changed; there may also be other changes.
   * 
   * This notice is included to meet the condition in clause 4(b) of the License. 
   */
  
   /*
   * 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: CustomFont.java 721430 2008-11-28 11:13:12Z acumiskey $ */
 
 /* NOTICE: This file has been changed by Plutext Pty Ltd for use in docx4j.
  * 
  * This notice is included to meet the condition in clause 4(b) of the License. 
  */
 
 package org.docx4j.fonts.fop.fonts;
 
 import java.util.Map;
 import java.util.Set;
 
 
Abstract base class for custom fonts loaded from files, for example.
 
 public abstract class CustomFont extends Typeface
             implements FontDescriptorMutableFont {
 
     private String fontName = null;
     private String fullName = null;
     private Set familyNames = null//Set<String>
     private String fontSubName = null;
     private String embedFileName = null;
     private String embedResourceName = null;
     private FontResolver resolver = null;
 
     private int capHeight = 0;
     private int xHeight = 0;
     private int ascender = 0;
     private int descender = 0;
     private int[] fontBBox = {0, 0, 0, 0};
     private int flags = 4;
     private int weight = 0; //0 means unknown weight
     private int stemV = 0;
     private int italicAngle = 0;
     private int missingWidth = 0;
     private FontType fontType = .;
     private int firstChar = 0;
     private int lastChar = 255;
 
     private Map kerning;
 
     private boolean useKerning = true;
 
     private boolean isEmbeddable = true;
 
 	public boolean isEmbeddable() {
 		return ;
 	}
 
 	public void setEmbeddable(boolean isEmbeddable) {
 		this. = isEmbeddable;
 	}
 
 	private Panose panose = null;
 
 	public Panose getPanose() {
 		return ;
 	}
 
 	public void setPanose(Panose panose) {
 		this. = panose;
 	}
    
    
 
     public String getFontName() {
         return ;
     }

    
    public String getEmbedFontName() {
        return getFontName();
    }

    
    public String getFullName() {
        return ;
    }

    
Returns the font family names.

Returns:
the font family names (a Set of Strings)
    public Set getFamilyNames() {
        return Collections.unmodifiableSet(this.);
    }

    
Returns the font family name stripped of whitespace.

Returns:
the stripped font family
See also:
FontUtil.stripWhiteSpace(java.lang.String)
    public String getStrippedFontName() {
        return FontUtil.stripWhiteSpace(getFontName());
    }

    
Returns font's subfamily name.

Returns:
the font's subfamily name
    public String getFontSubName() {
        return ;
    }

    
Returns an URI representing an embeddable font file. The URI will often be a filename or an URL.

Returns:
URI to an embeddable font file or null if not available.
    public String getEmbedFileName() {
        return ;
    }

    
Returns a Source representing an embeddable font file.

Returns:
Source for an embeddable font file
Throws:
java.io.IOException if embedFileName is not null but Source is not found
    public Source getEmbedFileSource() throws IOException {
        Source result = null;
        if ( != null &&  != null) {
            result = .resolve();
            if (result == null) {
                throw new IOException("Unable to resolve Source '"
                        +  + "' for embedded font");
            }
        }
        return result;
    }

    
Returns the lookup name to an embeddable font file available as a resource. (todo) Remove this method, this should be done using a resource: URI.

Returns:
the lookup name
    public String getEmbedResourceName() {
        return ;
    }

    
    public int getAscender() {
        return ;
    }

    
    public int getDescender() {
        return ;
    }

    
    public int getCapHeight() {
        return ;
    }

    
    public int getAscender(int size) {
        return size * ;
    }

    
    public int getDescender(int size) {
        return size * ;
    }

    
    public int getCapHeight(int size) {
        return size * ;
    }

    
    public int getXHeight(int size) {
        return size * ;
    }

    
    public int[] getFontBBox() {
        return ;
    }

    
    public int getFlags() {
        return ;
    }

    
    public boolean isSymbolicFont() {
        return ((getFlags() & 4) != 0) || "ZapfDingbatsEncoding".equals(getEncodingName());
        //Note: The check for ZapfDingbats is necessary as the PFM does not reliably indicate
        //if a font is symbolic.
    }

    
Returns the font weight (100, 200...800, 900). This value may be different from the one that was actually used to register the font.

Returns:
the font weight (or 0 if the font weight is unknown)
    public int getWeight() {
        return this.;
    }

    
    public int getStemV() {
        return ;
    }

    
    public int getItalicAngle() {
        return ;
    }

    
Returns the width to be used when no width is available.

Returns:
a character width
    public int getMissingWidth() {
        return ;
    }

    
    public FontType getFontType() {
        return ;
    }

    
Returns the index of the first character defined in this font.

Returns:
the index of the first character
    public int getFirstChar() {
        return ;
    }

    
Returns the index of the last character defined in this font.

Returns:
the index of the last character
    public int getLastChar() {
        return ;
    }

    
Used to determine if kerning is enabled.

Returns:
True if kerning is enabled.
    public boolean isKerningEnabled() {
        return ;
    }

    
    public final boolean hasKerningInfo() {
        return (isKerningEnabled() && ( != null) && !.isEmpty());
    }

    
    public final Map getKerningInfo() {
        if (hasKerningInfo()) {
            return ;
        } else {
            return ...;
        }
    }
    /* ---- MutableFont interface ---- */

    
    public void setFontName(String name) {
        this. = name;
    }

    
    public void setFullName(String name) {
        this. = name;
    }

    
    public void setFamilyNames(Set names) {
        this. = new java.util.HashSet(names);
    }

    
Sets the font's subfamily name.

Parameters:
subFamilyName the subfamily name of the font
    public void setFontSubFamilyName(String subFamilyName) {
        this. = subFamilyName;
    }

    
    public void setEmbedFileName(String path) {
        this. = path;
    }

    
    public void setEmbedResourceName(String name) {
        this. = name;
    }

    
    public void setCapHeight(int capHeight) {
        this. = capHeight;
    }

    
Returns the XHeight value of the font.

Parameters:
xHeight the XHeight value
    public void setXHeight(int xHeight) {
        this. = xHeight;
    }

    
    public void setAscender(int ascender) {
        this. = ascender;
    }

    
    public void setDescender(int descender) {
        this. = descender;
    }

    
    public void setFontBBox(int[] bbox) {
        this. = bbox;
    }

    
    public void setFlags(int flags) {
        this. = flags;
    }

    
Sets the font weight. Valid values are 100, 200...800, 900.

Parameters:
weight the font weight
    public void setWeight(int weight) {
        weight = (weight / 100) * 100;
        weight = Math.max(100, weight);
        weight = Math.min(900, weight);
        this. = weight;
    }

    
    public void setStemV(int stemV) {
        this. = stemV;
    }

    
    public void setItalicAngle(int italicAngle) {
        this. = italicAngle;
    }

    
    public void setMissingWidth(int width) {
        this. = width;
    }

    
    public void setFontType(FontType fontType) {
        this. = fontType;
    }

    
    public void setFirstChar(int index) {
        this. = index;
    }

    
    public void setLastChar(int index) {
        this. = index;
    }

    
    public void setKerningEnabled(boolean enabled) {
        this. = enabled;
    }

    
Sets the font resolver. Needed for URI resolution.

Parameters:
resolver the font resolver
    public void setResolver(FontResolver resolver) {
        this. = resolver;
    }

    
    public void putKerningEntry(Integer keyMap value) {
        if ( == null) {
             = new java.util.HashMap();
        }
        this..put(keyvalue);
    }

    
Replaces the existing kerning map with a new one.

Parameters:
kerningMap the kerning map (Map<Integer, Map<Integer, Integer>, the integers are character codes)
    public void replaceKerningMap(Map kerningMap) {
        if (kerningMap == null) {
            this. = .;
        } else {
            this. = kerningMap;
        }
    }
New to GrepCode? Check out our FAQ X