You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2019/06/27 19:21:42 UTC
svn commit: r1862247 -
/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
Author: tilman
Date: Thu Jun 27 19:21:42 2019
New Revision: 1862247
URL: http://svn.apache.org/viewvc?rev=1862247&view=rev
Log:
PDFBOX-4071: add some comments to help navigate GSUB
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java?rev=1862247&r1=1862246&r2=1862247&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java Thu Jun 27 19:21:42 2019
@@ -273,13 +273,17 @@ public class GlyphSubstitutionTable exte
LookupSubTable[] subTables = new LookupSubTable[subTableCount];
switch (lookupType)
{
- case 1: // Single
+ case 1:
+ // Single
+ // https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#SS
for (int i = 0; i < subTableCount; i++)
{
subTables[i] = readLookupSubTable(data, offset + subTableOffets[i]);
}
break;
- case 4: // Ligature Substitution Subtable
+ case 4:
+ // Ligature Substitution Subtable
+ // https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#LS
for (int i = 0; i < subTableCount; i++)
{
subTables[i] = readLigatureSubstitutionSubtable(data, offset + subTableOffets[i]);
@@ -301,6 +305,8 @@ public class GlyphSubstitutionTable exte
{
case 1:
{
+ // LookupType 1: Single Substitution Subtable
+ // https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#11-single-substitution-format-1
int coverageOffset = data.readUnsignedShort();
short deltaGlyphID = data.readSignedShort();
CoverageTable coverageTable = readCoverageTable(data, offset + coverageOffset);
@@ -308,6 +314,8 @@ public class GlyphSubstitutionTable exte
}
case 2:
{
+ // Single Substitution Format 2
+ // https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#12-single-substitution-format-2
int coverageOffset = data.readUnsignedShort();
int glyphCount = data.readUnsignedShort();
int[] substituteGlyphIDs = new int[glyphCount];