use of org.apache.pdfbox.pdmodel.font.encoding.Type1Encoding in project pdfbox by apache.
the class PDTrueTypeFont method readEncodingFromFont.
@Override
protected Encoding readEncodingFromFont() throws IOException {
if (!isEmbedded() && getStandard14AFM() != null) {
// read from AFM
return new Type1Encoding(getStandard14AFM());
} else {
// which will override this anyway
if (getSymbolicFlag() != null && !getSymbolicFlag()) {
return StandardEncoding.INSTANCE;
}
// normalise the standard 14 name, e.g "Symbol,Italic" -> "Symbol"
FontName standard14Name = Standard14Fonts.getMappedFontName(getName());
// likewise, if the font is standard 14 then we know it's Standard Encoding
if (isStandard14() && standard14Name != FontName.SYMBOL && standard14Name != FontName.ZAPF_DINGBATS) {
return StandardEncoding.INSTANCE;
}
// synthesize an encoding, so that getEncoding() is always usable
PostScriptTable post = ttf.getPostScript();
Map<Integer, String> codeToName = new HashMap<>();
for (int code = 0; code <= 256; code++) {
int gid = codeToGID(code);
if (gid > 0) {
String name = null;
if (post != null) {
name = post.getName(gid);
}
if (name == null) {
// GID pseudo-name
name = Integer.toString(gid);
}
codeToName.put(code, name);
}
}
return new BuiltInEncoding(codeToName);
}
}
Aggregations