in src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFSingleByteFont.java [121:151]
private Map<Integer, String> getCodeToName(Encoding encoding) {
Map<Integer, String> codeToName = new HashMap<Integer, String>();
if (encoding != null) {
COSBase cos = null;
if (!(encoding instanceof BuiltInEncoding)) {
cos = encoding.getCOSObject();
}
if (cos instanceof COSDictionary) {
COSDictionary enc = (COSDictionary) cos;
COSName baseEncodingName = (COSName) enc.getDictionaryObject(COSName.BASE_ENCODING);
if (baseEncodingName != null) {
Encoding baseEncoding = Encoding.getInstance(baseEncodingName);
codeToName.putAll(baseEncoding.getCodeToNameMap());
}
COSArray differences = (COSArray)enc.getDictionaryObject(COSName.DIFFERENCES);
int currentIndex = -1;
for (int i = 0; differences != null && i < differences.size(); i++) {
COSBase next = differences.getObject(i);
if (next instanceof COSNumber) {
currentIndex = ((COSNumber)next).intValue();
} else if (next instanceof COSName) {
COSName name = (COSName)next;
codeToName.put(currentIndex++, name.getName());
}
}
} else {
return encoding.getCodeToNameMap();
}
}
return codeToName;
}