private void loadFontFile()

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);
        }
    }