Author: lehmi
Date: Sun Aug 9 12:01:41 2015
New Revision: 1694874
URL: http://svn.apache.org/r1694874
Log:
PDFBOX-2916: fixed subtype 6 processing
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/CmapSubtable.java
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/CmapSubtable.java
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/CmapSubtable.java?rev=1694874r1=1694873r2=1694874view=diff
==
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/CmapSubtable.java
(original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/CmapSubtable.java
Sun Aug 9 12:01:41 2015
@@ -340,13 +340,19 @@ public class CmapSubtable
{
int firstCode = data.readUnsignedShort();
int entryCount = data.readUnsignedShort();
-glyphIdToCharacterCode = newGlyphIdToCharacterCode(numGlyphs);
+MapInteger, Integer tmpGlyphToChar = new HashMapInteger, 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 =
newGlyphIdToCharacterCode(Collections.max(tmpGlyphToChar.keySet()) + 1);
+for (EntryInteger, Integer entry : tmpGlyphToChar.entrySet())
+{
+// link the glyphId with the right character code
+glyphIdToCharacterCode[entry.getKey()] = entry.getValue();
+}
}
/**