svn commit: r1694874 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/CmapSubtable.java

2015-08-09 Thread lehmi
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();
+}
 }
 
 /**




svn commit: r1694856 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java

2015-08-09 Thread jahewson
Author: jahewson
Date: Sun Aug  9 07:00:13 2015
New Revision: 1694856

URL: http://svn.apache.org/r1694856
Log:
PDFBOX-2846: Try to find glyphs by unicode name if standard name doesn't work

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java?rev=1694856r1=1694855r2=1694856view=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
 Sun Aug  9 07:00:13 2015
@@ -354,8 +354,13 @@ public class PDTrueTypeFont extends PDSi
 
 if (!ttf.hasGlyph(name))
 {
-throw new IllegalArgumentException(
-String.format(No glyph for U+%04X in font %s, unicode, 
getName()));
+// try unicode name
+String uniName = String.format(uni%04X, unicode);
+if (!ttf.hasGlyph(uniName))
+{
+throw new IllegalArgumentException(
+String.format(No glyph for U+%04X in font %s, 
unicode, getName()));
+}
 }
 
 int code = inverted.get(name);