in fop-core/src/main/java/org/apache/fop/fonts/XMLFontMetricsReader.java [234:304]
public void endElement(String uri, String localName, String qName) throws SAXException {
String content = text.toString().trim();
if ("font-name".equals(localName)) {
returnFont.setFontName(content);
} else if ("full-name".equals(localName)) {
returnFont.setFullName(content);
} else if ("family-name".equals(localName)) {
Set<String> s = new HashSet<String>();
s.add(content);
returnFont.setFamilyNames(s);
} else if ("ttc-name".equals(localName) && isCID) {
multiFont.setTTCName(content);
} else if ("encoding".equals(localName)) {
if (singleFont != null && singleFont.getFontType() == FontType.TYPE1) {
singleFont.setEncoding(content);
}
} else if ("cap-height".equals(localName)) {
returnFont.setCapHeight(getInt(content));
} else if ("x-height".equals(localName)) {
returnFont.setXHeight(getInt(content));
} else if ("ascender".equals(localName)) {
returnFont.setAscender(getInt(content));
} else if ("descender".equals(localName)) {
returnFont.setDescender(getInt(content));
} else if ("left".equals(localName)) {
int[] bbox = returnFont.getFontBBox();
bbox[0] = getInt(content);
returnFont.setFontBBox(bbox);
} else if ("bottom".equals(localName)) {
int[] bbox = returnFont.getFontBBox();
bbox[1] = getInt(content);
returnFont.setFontBBox(bbox);
} else if ("right".equals(localName)) {
int[] bbox = returnFont.getFontBBox();
bbox[2] = getInt(content);
returnFont.setFontBBox(bbox);
} else if ("top".equals(localName)) {
int[] bbox = returnFont.getFontBBox();
bbox[3] = getInt(content);
returnFont.setFontBBox(bbox);
} else if ("first-char".equals(localName)) {
returnFont.setFirstChar(getInt(content));
} else if ("last-char".equals(localName)) {
returnFont.setLastChar(getInt(content));
} else if ("flags".equals(localName)) {
returnFont.setFlags(getInt(content));
} else if ("stemv".equals(localName)) {
returnFont.setStemV(getInt(content));
} else if ("italic-angle".equals(localName)) {
returnFont.setItalicAngle(getInt(content));
} else if ("missing-width".equals(localName)) {
returnFont.setMissingWidth(getInt(content));
} else if ("cid-type".equals(localName)) {
multiFont.setCIDType(CIDFontType.byName(content));
} else if ("default-width".equals(localName)) {
multiFont.setDefaultWidth(getInt(content));
} else if ("cid-widths".equals(localName)) {
int[] wds = new int[cidWidths.size()];
int j = 0;
for (Integer cidWidth : cidWidths) {
wds[j++] = cidWidth;
}
//multiFont.addCIDWidthEntry(cidWidthIndex, wds);
multiFont.setWidthArray(wds);
} else if ("bfranges".equals(localName)) {
multiFont.setCMap(bfranges.toArray(new CMapSegment[bfranges.size()]));
}
text.setLength(0); //Reset text buffer (see characters())
}