Hi, fop-team. Current org.apache.fop.fonts.TTFFile dosen't load all glyph data when two or more character is mapped to one glyph. (In fact, Bitstream Cybetbit font has mapped many characters to missingGlyph (glyphIndex = 0)). Some character dosen't appear in outputs because of this. This pacth will fix this problem. ======= SASAKI Suguru mailto : [EMAIL PROTECTED] --- src/org/apache/fop/fonts/TTFFile.java.orig Tue Apr 17 01:07:30 2001 +++ src/org/apache/fop/fonts/TTFFile.java Thu Jul 12 01:37:20 2001 @@ -200,13 +200,14 @@ lastChar = (short) j; if (mtxPtr < mtx_tab.length) { + int glyphIdx; if (cmap_rangeOffsets[i] != 0) { int glyphOffset = glyphIdArrayOffset + ((cmap_rangeOffsets[i] / 2) + (j - cmap_startCounts[i]) + (i) - cmap_segCountX2 / 2) * 2; in.seek_set(glyphOffset); - int glyphIdx = (in.readTTFUShort() + + glyphIdx = (in.readTTFUShort() + cmap_deltas[i]) & 0xffff; unicodeMapping.addElement( @@ -254,7 +255,7 @@ } else { - int glyphIdx = (j + cmap_deltas[i]) & 0xffff; + glyphIdx = (j + cmap_deltas[i]) & 0xffff; if (glyphIdx < mtx_tab.length) mtx_tab[glyphIdx] .unicodeIndex.addElement( @@ -308,7 +309,11 @@ mtx_tab[(j+cmap_deltas[i]) & 0xffff].name); */ } - mtxPtr++; + if (glyphIdx < mtx_tab.length){ + if(mtx_tab[glyphIdx] .unicodeIndex.size() < 2){ + mtxPtr++; + } + } } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]