You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2015/08/11 19:52:28 UTC
svn commit: r1695342 -
/pdfbox/branches/1.8/fontbox/src/main/java/org/apache/fontbox/ttf/CMAPEncodingEntry.java
Author: lehmi
Date: Tue Aug 11 17:52:28 2015
New Revision: 1695342
URL: http://svn.apache.org/r1695342
Log:
PDFBOX-2916: fixed subtype 6 processing
Modified:
pdfbox/branches/1.8/fontbox/src/main/java/org/apache/fontbox/ttf/CMAPEncodingEntry.java
Modified: pdfbox/branches/1.8/fontbox/src/main/java/org/apache/fontbox/ttf/CMAPEncodingEntry.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/fontbox/src/main/java/org/apache/fontbox/ttf/CMAPEncodingEntry.java?rev=1695342&r1=1695341&r2=1695342&view=diff
==============================================================================
--- pdfbox/branches/1.8/fontbox/src/main/java/org/apache/fontbox/ttf/CMAPEncodingEntry.java (original)
+++ pdfbox/branches/1.8/fontbox/src/main/java/org/apache/fontbox/ttf/CMAPEncodingEntry.java Tue Aug 11 17:52:28 2015
@@ -315,13 +315,19 @@ public class CMAPEncodingEntry
{
int firstCode = data.readUnsignedShort();
int entryCount = data.readUnsignedShort();
- glyphIdToCharacterCode = new int[numGlyphs];
+ Map<Integer, Integer> tmpGlyphToChar = new HashMap<Integer, Integer>();
int[] glyphIdArray = data.readUnsignedShortArray(entryCount);
for (int i = 0; i < entryCount; i++)
{
- glyphIdToCharacterCode[glyphIdArray[i]] = firstCode + i;
+ tmpGlyphToChar.put(glyphIdArray[i], firstCode + i);
characterCodeToGlyphId.put((firstCode + i), glyphIdArray[i]);
}
+ glyphIdToCharacterCode = new int[Collections.max(tmpGlyphToChar.keySet())+1];
+ for (Entry<Integer, Integer> entry : tmpGlyphToChar.entrySet())
+ {
+ // link the glyphId with the right character code
+ glyphIdToCharacterCode[entry.getKey()] = entry.getValue();
+ }
}
/**