in src/java/org/apache/fop/render/pdf/pdfbox/FOPPDFSingleByteFont.java [182:202]
private void loadFontFile(FontContainer font) throws IOException {
PDStream ff = readFontFile(font.font);
mergeFontFile(ff.createInputStream(), font);
if (font.font instanceof PDTrueTypeFont) {
TrueTypeFont ttfont = ((PDTrueTypeFont) font.font).getTrueTypeFont();
CmapSubtable[] cmapList = ttfont.getCmap().getCmaps();
for (CmapSubtable c : cmapList) {
MergeTTFonts.Cmap tempCmap = getNewCmap(c.getPlatformId(), c.getPlatformEncodingId());
for (int i = 0; i < 256 * 256; i++) {
int gid = c.getGlyphId(i);
GlyphData glyphData = ttfont.getGlyph().getGlyph(gid);
if (gid != 0 && !tempCmap.glyphIdToCharacterCode.containsKey(i) && (glyphData != null || i == 32)) {
tempCmap.glyphIdToCharacterCode.put(i, gid);
} else if (gid != 0 && !tempCmap.glyphIdToCharacterCodeBase.containsKey(i)) {
tempCmap.glyphIdToCharacterCodeBase.put(i, gid);
}
}
}
FOPPDFMultiByteFont.mergeMaxp(ttfont, ((MergeTTFonts)mergeFonts).maxp);
}
}