pdfbox-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From til...@apache.org
Subject svn commit: r1829710 [2/3] - in /pdfbox/trunk: examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ examples/src/main/resources/org/apache/pdfbox/resources/ttf/ fontbox/src/main/java/org/apache/fontbox/ttf/ fontbox/src/main/java/org/apache/fontbo...
Date Sat, 21 Apr 2018 14:17:29 GMT
Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/FeatureRecord.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/FeatureRecord.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/FeatureRecord.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/FeatureRecord.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.common;
+
+/**
+ * This class models the
+ * <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#features-and-lookups">Features and
+ * lookups</a> in the Open Type layout common tables.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class FeatureRecord
+{
+    private final String featureTag;
+    private final FeatureTable featureTable;
+
+    public FeatureRecord(String featureTag, FeatureTable featureTable)
+    {
+        this.featureTag = featureTag;
+        this.featureTable = featureTable;
+    }
+
+    public String getFeatureTag()
+    {
+        return featureTag;
+    }
+
+    public FeatureTable getFeatureTable()
+    {
+        return featureTable;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("FeatureRecord[featureTag=%s]", featureTag);
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/FeatureRecord.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/FeatureTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/FeatureTable.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/FeatureTable.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/FeatureTable.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.common;
+
+/**
+ * This class models the
+ * <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#feature-table">Feature table</a> in the
+ * Open Type layout common tables.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class FeatureTable
+{
+    private final int featureParams;
+    private final int lookupIndexCount;
+    private final int[] lookupListIndices;
+
+    public FeatureTable(int featureParams, int lookupIndexCount, int[] lookupListIndices)
+    {
+        this.featureParams = featureParams;
+        this.lookupIndexCount = lookupIndexCount;
+        this.lookupListIndices = lookupListIndices;
+    }
+
+    public int getFeatureParams()
+    {
+        return featureParams;
+    }
+
+    public int getLookupIndexCount()
+    {
+        return lookupIndexCount;
+    }
+
+    public int[] getLookupListIndices()
+    {
+        return lookupListIndices;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("FeatureTable[lookupListIndiciesCount=%d]", lookupListIndices.length);
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/FeatureTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LangSysRecord.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LangSysRecord.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LangSysRecord.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LangSysRecord.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.common;
+
+/**
+ * This class models the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags">Language
+ * system tags</a> in the Open Type Font specs.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class LangSysRecord
+{
+    private final String langSysTag;
+    private final LangSysTable langSysTable;
+
+    public LangSysRecord(String langSysTag, LangSysTable langSysTable)
+    {
+        this.langSysTag = langSysTag;
+        this.langSysTable = langSysTable;
+    }
+
+    public String getLangSysTag()
+    {
+        return langSysTag;
+    }
+
+    public LangSysTable getLangSysTable()
+    {
+        return langSysTable;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("LangSysRecord[langSysTag=%s]", langSysTag);
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LangSysRecord.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LangSysTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LangSysTable.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LangSysTable.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LangSysTable.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.common;
+
+/**
+ * This class models the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags">Language
+ * system tags</a> in the Open Type Font specs.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class LangSysTable
+{
+    private final int lookupOrder;
+    private final int requiredFeatureIndex;
+    private final int featureIndexCount;
+    private final int[] featureIndices;
+
+    public LangSysTable(int lookupOrder, int requiredFeatureIndex, int featureIndexCount,
+            int[] featureIndices)
+    {
+        this.lookupOrder = lookupOrder;
+        this.requiredFeatureIndex = requiredFeatureIndex;
+        this.featureIndexCount = featureIndexCount;
+        this.featureIndices = featureIndices;
+    }
+
+    public int getLookupOrder()
+    {
+        return lookupOrder;
+    }
+
+    public int getRequiredFeatureIndex()
+    {
+        return requiredFeatureIndex;
+    }
+
+    public int getFeatureIndexCount()
+    {
+        return featureIndexCount;
+    }
+
+    public int[] getFeatureIndices()
+    {
+        return featureIndices;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("LangSysTable[requiredFeatureIndex=%d]", requiredFeatureIndex);
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LangSysTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupListTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupListTable.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupListTable.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupListTable.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.common;
+
+/**
+ * This class models the
+ * <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#lookup-list-table">Lookup List Table</a>
+ * in the Open Type layout common tables.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class LookupListTable
+{
+    private final int lookupCount;
+    private final LookupTable[] lookups;
+
+    public LookupListTable(int lookupCount, LookupTable[] lookups)
+    {
+        this.lookupCount = lookupCount;
+        this.lookups = lookups;
+    }
+
+    public int getLookupCount()
+    {
+        return lookupCount;
+    }
+
+    public LookupTable[] getLookups()
+    {
+        return lookups;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("%s[lookupCount=%d]", LookupListTable.class.getSimpleName(),
+                lookupCount);
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupListTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupSubTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupSubTable.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupSubTable.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupSubTable.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.common;
+
+/**
+ * This class models the
+ * <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#lookup-table">Lookup Sub-Table</a> in the
+ * Open Type layout common tables.
+ * 
+ * @author Palash Ray
+ *
+ */
+public abstract class LookupSubTable
+{
+    private final int substFormat;
+    private final CoverageTable coverageTable;
+
+    public LookupSubTable(int substFormat, CoverageTable coverageTable)
+    {
+        this.substFormat = substFormat;
+        this.coverageTable = coverageTable;
+    }
+
+    public abstract int doSubstitution(int gid, int coverageIndex);
+
+    public int getSubstFormat()
+    {
+        return substFormat;
+    }
+
+    public CoverageTable getCoverageTable()
+    {
+        return coverageTable;
+    }
+}
\ No newline at end of file

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupSubTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupTable.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupTable.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupTable.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.common;
+
+/**
+ * This class models the
+ * <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#lookup-table">Lookup Table</a> in the
+ * Open Type layout common tables.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class LookupTable
+{
+    private final int lookupType;
+    private final int lookupFlag;
+    private final int markFilteringSet;
+    private final LookupSubTable[] subTables;
+
+    public LookupTable(int lookupType, int lookupFlag, int markFilteringSet,
+            LookupSubTable[] subTables)
+    {
+        this.lookupType = lookupType;
+        this.lookupFlag = lookupFlag;
+        this.markFilteringSet = markFilteringSet;
+        this.subTables = subTables;
+    }
+
+    public int getLookupType()
+    {
+        return lookupType;
+    }
+
+    public int getLookupFlag()
+    {
+        return lookupFlag;
+    }
+
+    public int getMarkFilteringSet()
+    {
+        return markFilteringSet;
+    }
+
+    public LookupSubTable[] getSubTables()
+    {
+        return subTables;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("LookupTable[lookupType=%d,lookupFlag=%d,markFilteringSet=%d]",
+                lookupType, lookupFlag, markFilteringSet);
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/LookupTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/RangeRecord.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/RangeRecord.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/RangeRecord.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/RangeRecord.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.common;
+
+/**
+ * This class models the
+ * <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#coverage-format-2">Range Record in the
+ * Coverage format 2</a> in the Open Type layout common tables.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class RangeRecord
+{
+    private final int startGlyphID;
+    private final int endGlyphID;
+    private final int startCoverageIndex;
+
+    public RangeRecord(int startGlyphID, int endGlyphID, int startCoverageIndex)
+    {
+        this.startGlyphID = startGlyphID;
+        this.endGlyphID = endGlyphID;
+        this.startCoverageIndex = startCoverageIndex;
+    }
+
+    public int getStartGlyphID()
+    {
+        return startGlyphID;
+    }
+
+    public int getEndGlyphID()
+    {
+        return endGlyphID;
+    }
+
+    public int getStartCoverageIndex()
+    {
+        return startCoverageIndex;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("RangeRecord[startGlyphID=%d,endGlyphID=%d,startCoverageIndex=%d]",
+                startGlyphID, endGlyphID, startCoverageIndex);
+    }
+}
\ No newline at end of file

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/RangeRecord.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/ScriptRecord.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/ScriptRecord.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/ScriptRecord.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/ScriptRecord.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.common;
+
+/**
+ * This class models the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/scripttags">Script tags</a>
+ * in the Open Type Font specs.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class ScriptRecord
+{
+    private final String scriptTag;
+    private final ScriptTable scriptTable;
+
+    public ScriptRecord(String scriptTag, ScriptTable scriptTable)
+    {
+        this.scriptTag = scriptTag;
+        this.scriptTable = scriptTable;
+    }
+
+    public String getScriptTag()
+    {
+        return scriptTag;
+    }
+
+    public ScriptTable getScriptTable()
+    {
+        return scriptTable;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("ScriptRecord[scriptTag=%s]", scriptTag);
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/ScriptRecord.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/ScriptTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/ScriptTable.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/ScriptTable.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/ScriptTable.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.common;
+
+import java.util.Map;
+
+/**
+ * This class models the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/scripttags">Script tags</a>
+ * in the Open Type Font specs.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class ScriptTable
+{
+    private final LangSysTable defaultLangSysTable;
+    private final Map<String, LangSysTable> langSysTables;
+
+    public ScriptTable(LangSysTable defaultLangSysTable, Map<String, LangSysTable> langSysTables)
+    {
+        this.defaultLangSysTable = defaultLangSysTable;
+        this.langSysTables = langSysTables;
+    }
+
+    public LangSysTable getDefaultLangSysTable()
+    {
+        return defaultLangSysTable;
+    }
+
+    public Map<String, LangSysTable> getLangSysTables()
+    {
+        return langSysTables;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("ScriptTable[hasDefault=%s,langSysRecordsCount=%d]",
+                defaultLangSysTable != null, langSysTables.size());
+    }
+}
\ No newline at end of file

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/ScriptTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/package.html
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/package.html?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/package.html (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/package.html Sat Apr 21 14:17:29 2018
@@ -0,0 +1,26 @@
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one or more
+ ! contributor license agreements.  See the NOTICE file distributed with
+ ! this work for additional information regarding copyright ownership.
+ ! The ASF licenses this file to You under the Apache License, Version 2.0
+ ! (the "License"); you may not use this file except in compliance with
+ ! the License.  You may obtain a copy of the License at
+ !
+ !      http://www.apache.org/licenses/LICENSE-2.0
+ !
+ ! Unless required by applicable law or agreed to in writing, software
+ ! distributed under the License is distributed on an "AS IS" BASIS,
+ ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ! See the License for the specific language governing permissions and
+ ! limitations under the License.
+ !-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+
+</head>
+<body>
+This package contains the highly obfuscated <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2">Layout Common Table Formats</a> system of tables from the Open Type Font specs. 
+This package makes an honest attempt to closely model these highly obfuscated OTF Tables, in their raw glory, as close as possible to their original nonsensical forms, without any spite or bias.
+</body>
+</html>

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/common/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LigatureSetTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LigatureSetTable.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LigatureSetTable.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LigatureSetTable.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.gsub;
+
+/**
+ * This class is a part of the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/gsub">GSUB — Glyph
+ * Substitution Table</a> system of tables in the Open Type Font specs. This is a part of the <a href=
+ * "https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#lookuptype-4-ligature-substitution-subtable">LookupType
+ * 4: Ligature Substitution Subtable</a>. It specifically models the <a href=
+ * "https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#41-ligature-substitution-format-1">LigatureSet table:
+ * All ligatures beginning with the same glyph</a>.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class LigatureSetTable
+{
+    private final int ligatureCount;
+    private final LigatureTable[] ligatureTables;
+
+    public LigatureSetTable(int ligatureCount, LigatureTable[] ligatureTables)
+    {
+        this.ligatureCount = ligatureCount;
+        this.ligatureTables = ligatureTables;
+    }
+
+    public int getLigatureCount()
+    {
+        return ligatureCount;
+    }
+
+    public LigatureTable[] getLigatureTables()
+    {
+        return ligatureTables;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("%s[ligatureCount=%d]", LigatureSetTable.class.getSimpleName(),
+                ligatureCount);
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LigatureSetTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LigatureTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LigatureTable.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LigatureTable.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LigatureTable.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.gsub;
+
+/**
+ * This class is a part of the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/gsub">GSUB — Glyph
+ * Substitution Table</a> system of tables in the Open Type Font specs. This is a part of the <a href=
+ * "https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#lookuptype-4-ligature-substitution-subtable">LookupType
+ * 4: Ligature Substitution Subtable</a>. It specifically models the
+ * <a href= "https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#41-ligature-substitution-format-1">Ligature
+ * table: Glyph components for one ligature</a>.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class LigatureTable
+{
+    private final int ligatureGlyph;
+    private final int componentCount;
+    private final int[] componentGlyphIDs;
+
+    public LigatureTable(int ligatureGlyph, int componentCount, int[] componentGlyphIDs)
+    {
+        this.ligatureGlyph = ligatureGlyph;
+        this.componentCount = componentCount;
+        this.componentGlyphIDs = componentGlyphIDs;
+    }
+
+    public int getLigatureGlyph()
+    {
+        return ligatureGlyph;
+    }
+
+    public int getComponentCount()
+    {
+        return componentCount;
+    }
+
+    public int[] getComponentGlyphIDs()
+    {
+        return componentGlyphIDs;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("%s[ligatureGlyph=%d, componentCount=%d]",
+                LigatureTable.class.getSimpleName(), ligatureGlyph, componentCount);
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LigatureTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeLigatureSubstitutionSubstFormat1.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeLigatureSubstitutionSubstFormat1.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeLigatureSubstitutionSubstFormat1.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeLigatureSubstitutionSubstFormat1.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.gsub;
+
+import org.apache.fontbox.ttf.table.common.CoverageTable;
+import org.apache.fontbox.ttf.table.common.LookupSubTable;
+
+/**
+ * This class is a part of the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/gsub">GSUB — Glyph
+ * Substitution Table</a> system of tables in the Open Type Font specs. This is a part of the <a href=
+ * "https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#lookuptype-4-ligature-substitution-subtable">LookupType
+ * 4: Ligature Substitution Subtable</a>. It specifically models the
+ * <a href= "https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#41-ligature-substitution-format-1">Ligature
+ * Substitution Format 1</a>.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class LookupTypeLigatureSubstitutionSubstFormat1 extends LookupSubTable
+{
+    private final LigatureSetTable[] ligatureSetTables;
+
+    public LookupTypeLigatureSubstitutionSubstFormat1(int substFormat, CoverageTable coverageTable,
+            LigatureSetTable[] ligatureSetTables)
+    {
+        super(substFormat, coverageTable);
+        this.ligatureSetTables = ligatureSetTables;
+    }
+
+    @Override
+    public int doSubstitution(int gid, int coverageIndex)
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    public LigatureSetTable[] getLigatureSetTables()
+    {
+        return ligatureSetTables;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("%s[substFormat=%d]",
+                LookupTypeLigatureSubstitutionSubstFormat1.class.getSimpleName(), getSubstFormat());
+    }
+}
\ No newline at end of file

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeLigatureSubstitutionSubstFormat1.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeSingleSubstFormat1.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeSingleSubstFormat1.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeSingleSubstFormat1.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeSingleSubstFormat1.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.gsub;
+
+import org.apache.fontbox.ttf.table.common.CoverageTable;
+import org.apache.fontbox.ttf.table.common.LookupSubTable;
+
+/**
+ * This class is a part of the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/gsub">GSUB — Glyph
+ * Substitution Table</a> system of tables in the Open Type Font specs. This is a part of the <a href=
+ * "https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#lookuptype-1-single-substitution-subtable">LookupType
+ * 1: Single Substitution Subtable</a>. It specifically models the
+ * <a href= "https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#11-single-substitution-format-1">Single
+ * Substitution Format 1</a>.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class LookupTypeSingleSubstFormat1 extends LookupSubTable
+{
+    private final short deltaGlyphID;
+
+    public LookupTypeSingleSubstFormat1(int substFormat, CoverageTable coverageTable,
+            short deltaGlyphID)
+    {
+        super(substFormat, coverageTable);
+        this.deltaGlyphID = deltaGlyphID;
+    }
+
+    @Override
+    public int doSubstitution(int gid, int coverageIndex)
+    {
+        return coverageIndex < 0 ? gid : gid + deltaGlyphID;
+    }
+
+    public short getDeltaGlyphID()
+    {
+        return deltaGlyphID;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format("LookupTypeSingleSubstFormat1[substFormat=%d,deltaGlyphID=%d]",
+                getSubstFormat(), deltaGlyphID);
+    }
+}

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeSingleSubstFormat1.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeSingleSubstFormat2.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeSingleSubstFormat2.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeSingleSubstFormat2.java (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeSingleSubstFormat2.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.table.gsub;
+
+import java.util.Arrays;
+
+import org.apache.fontbox.ttf.table.common.CoverageTable;
+import org.apache.fontbox.ttf.table.common.LookupSubTable;
+
+/**
+ * This class is a part of the <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/gsub">GSUB — Glyph
+ * Substitution Table</a> system of tables in the Open Type Font specs. This is a part of the <a href=
+ * "https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#lookuptype-1-single-substitution-subtable">LookupType
+ * 1: Single Substitution Subtable</a>. It specifically models the
+ * <a href= "https://docs.microsoft.com/en-us/typography/opentype/spec/gsub#12-single-substitution-format-2">Single
+ * Substitution Format 2</a>.
+ * 
+ * @author Palash Ray
+ *
+ */
+public class LookupTypeSingleSubstFormat2 extends LookupSubTable
+{
+    private final int[] substituteGlyphIDs;
+
+    public LookupTypeSingleSubstFormat2(int substFormat, CoverageTable coverageTable,
+            int[] substituteGlyphIDs)
+    {
+        super(substFormat, coverageTable);
+        this.substituteGlyphIDs = substituteGlyphIDs;
+    }
+
+    @Override
+    public int doSubstitution(int gid, int coverageIndex)
+    {
+        return coverageIndex < 0 ? gid : substituteGlyphIDs[coverageIndex];
+    }
+
+    public int[] getSubstituteGlyphIDs()
+    {
+        return substituteGlyphIDs;
+    }
+
+    @Override
+    public String toString()
+    {
+        return String.format(
+                "LookupTypeSingleSubstFormat2[substFormat=%d,substituteGlyphIDs=%s]",
+                getSubstFormat(), Arrays.toString(substituteGlyphIDs));
+    }
+}
\ No newline at end of file

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/LookupTypeSingleSubstFormat2.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/package.html
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/package.html?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/package.html (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/package.html Sat Apr 21 14:17:29 2018
@@ -0,0 +1,26 @@
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one or more
+ ! contributor license agreements.  See the NOTICE file distributed with
+ ! this work for additional information regarding copyright ownership.
+ ! The ASF licenses this file to You under the Apache License, Version 2.0
+ ! (the "License"); you may not use this file except in compliance with
+ ! the License.  You may obtain a copy of the License at
+ !
+ !      http://www.apache.org/licenses/LICENSE-2.0
+ !
+ ! Unless required by applicable law or agreed to in writing, software
+ ! distributed under the License is distributed on an "AS IS" BASIS,
+ ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ! See the License for the specific language governing permissions and
+ ! limitations under the License.
+ !-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+
+</head>
+<body>
+This package contains the highly obfuscated <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/gsub">GSUB, aka, Glyph Substitution Table</a> system of tables from the Open Type Font specs. 
+This package makes an honest attempt to closely model these highly obfuscated OTF Tables in the GSUB sub-category, in their raw glory, as close as possible to their original nonsensical forms, without any spite or bias.
+</body>
+</html>

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/gsub/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/package.html
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/package.html?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/package.html (added)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/package.html Sat Apr 21 14:17:29 2018
@@ -0,0 +1,26 @@
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one or more
+ ! contributor license agreements.  See the NOTICE file distributed with
+ ! this work for additional information regarding copyright ownership.
+ ! The ASF licenses this file to You under the Apache License, Version 2.0
+ ! (the "License"); you may not use this file except in compliance with
+ ! the License.  You may obtain a copy of the License at
+ !
+ !      http://www.apache.org/licenses/LICENSE-2.0
+ !
+ ! Unless required by applicable law or agreed to in writing, software
+ ! distributed under the License is distributed on an "AS IS" BASIS,
+ ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ! See the License for the specific language governing permissions and
+ ! limitations under the License.
+ !-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+
+</head>
+<body>
+This package contains the highly obfuscated <a href="https://docs.microsoft.com/en-us/typography/opentype/spec/font-file#font-tables">Font tables</a> from the Open Type Font specs. 
+This package makes an honest attempt to closely model these highly obfuscated OTF Tables, in their raw glory, as close as possible to their original nonsensical forms, without any spite or bias.
+</body>
+</html>

Propchange: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/table/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/GlyphSubstitutionTableTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/GlyphSubstitutionTableTest.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/GlyphSubstitutionTableTest.java (added)
+++ pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/GlyphSubstitutionTableTest.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.fontbox.ttf;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.junit.Test;
+
+public class GlyphSubstitutionTableTest
+{
+
+    private static final int DATA_POSITION_FOR_GSUB_TABLE = 120544;
+
+    private static final Collection<String> EXPECTED_FEATURE_NAMES = Arrays.asList("abvs", "akhn",
+            "blwf", "blws", "half", "haln", "init", "nukt", "pres", "pstf", "rphf", "vatu");
+
+    @Test
+    public void testGetRawGSubData() throws IOException
+    {
+        // given
+        MemoryTTFDataStream memoryTTFDataStream = new MemoryTTFDataStream(
+                GlyphSubstitutionTableTest.class.getResourceAsStream("/ttf/Lohit-Bengali.ttf"));
+        memoryTTFDataStream.seek(DATA_POSITION_FOR_GSUB_TABLE);
+
+        GlyphSubstitutionTable testClass = new GlyphSubstitutionTable(null);
+
+        // when
+        testClass.read(null, memoryTTFDataStream);
+
+        // then
+        Map<String, Map<List<Integer>, Integer>> rawGsubData = testClass.getRawGSubData();
+        assertNotNull(rawGsubData);
+        assertFalse(rawGsubData.isEmpty());
+
+        Set<String> featureNames = rawGsubData.keySet();
+        assertEquals(new HashSet<>(EXPECTED_FEATURE_NAMES), featureNames);
+
+        String templatePathToFile = "/gsub/lohit_bengali/bng2/%s.txt";
+
+        for (String featureName : EXPECTED_FEATURE_NAMES)
+        {
+            System.out.println("******* Testing feature: " + featureName);
+            Map<List<Integer>, Integer> expectedGsubTableRawData = getExpectedGsubTableRawData(
+                    String.format(templatePathToFile, featureName));
+            assertEquals(expectedGsubTableRawData, rawGsubData.get(featureName));
+        }
+
+    }
+
+    private Map<List<Integer>, Integer> getExpectedGsubTableRawData(String pathToResource)
+            throws IOException
+    {
+        Map<List<Integer>, Integer> gsubData = new HashMap<>();
+
+        try (BufferedReader br = new BufferedReader(
+                new InputStreamReader(TestTTFParser.class.getResourceAsStream(pathToResource)));)
+        {
+            while (true)
+            {
+                String line = br.readLine();
+
+                if (line == null)
+                {
+                    break;
+                }
+
+                if (line.trim().length() == 0)
+                {
+                    continue;
+                }
+
+                if (line.startsWith("#"))
+                {
+                    continue;
+                }
+                String[] lineSplittedByKeyValue = line.split("=");
+
+                if (lineSplittedByKeyValue.length != 2)
+                {
+                    throw new IllegalArgumentException("invalid format");
+                }
+
+                List<Integer> oldGlyphIds = new ArrayList<>();
+                for (String value : lineSplittedByKeyValue[0].split(","))
+                {
+                    oldGlyphIds.add(Integer.valueOf(value));
+                }
+
+                Integer newGlyphId = Integer.valueOf(lineSplittedByKeyValue[1]);
+
+                gsubData.put(oldGlyphIds, newGlyphId);
+
+            }
+        }
+
+        return gsubData;
+    }
+
+}

Propchange: pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/GlyphSubstitutionTableTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/gsub/CompoundCharacterTokenizerTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/gsub/CompoundCharacterTokenizerTest.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/gsub/CompoundCharacterTokenizerTest.java (added)
+++ pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/gsub/CompoundCharacterTokenizerTest.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,224 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.gsub;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+
+import org.junit.Test;
+
+public class CompoundCharacterTokenizerTest
+{
+
+    @Test
+    public void testTokenize_happyPath_1()
+    {
+
+        // given
+        CompoundCharacterTokenizer tokenizer = new CompoundCharacterTokenizer(
+                new HashSet<>(Arrays.asList(new String[] { "HrkJj", "68RetP", "Yx!23uyt" })));
+        String text = "12345HrkJjxabbcc68RetPxxxcfb1245678Yx!23uyt889000";
+
+        // when
+        List<String> tokens = tokenizer.tokenize(text);
+
+        // then
+        StringBuilder sb = new StringBuilder();
+        for (String token : tokens)
+        {
+            sb.append(token);
+        }
+
+        assertEquals(text, sb.toString());
+        assertEquals(Arrays.asList("12345", "HrkJj", "xabbcc", "68RetP", "xxxcfb1245678",
+                "Yx!23uyt", "889000"), tokens);
+    }
+
+    @Test
+    public void testTokenize_happyPath_2()
+    {
+
+        // given
+        CompoundCharacterTokenizer tokenizer = new CompoundCharacterTokenizer(
+                new HashSet<>(Arrays.asList(new String[] { "84_93", "104_82", "104_87" })));
+        String text = "84_112_93_104_82_61_96_102_93_104_87_110";
+
+        // when
+        List<String> tokens = tokenizer.tokenize(text);
+
+        // then
+        StringBuilder sb = new StringBuilder();
+        for (String token : tokens)
+        {
+            sb.append(token);
+        }
+
+        assertEquals(text, sb.toString());
+        assertEquals(Arrays.asList("84_112_93_", "104_82", "_61_96_102_93_", "104_87", "_110"),
+                tokens);
+    }
+
+    @Test
+    public void testTokenize_happyPath_3()
+    {
+
+        // given
+        CompoundCharacterTokenizer tokenizer = new CompoundCharacterTokenizer(
+                new HashSet<>(Arrays.asList(new String[] { "67_112_96", "74_112_76" })));
+        String text = "67_112_96_103_93_108_93";
+
+        // when
+        List<String> tokens = tokenizer.tokenize(text);
+
+        // then
+        StringBuilder sb = new StringBuilder();
+        for (String token : tokens)
+        {
+            sb.append(token);
+        }
+
+        assertEquals(text, sb.toString());
+        assertEquals(Arrays.asList("67_112_96", "_103_93_108_93"), tokens);
+    }
+
+    @Test
+    public void testTokenize_happyPath_4()
+    {
+
+        // given
+        CompoundCharacterTokenizer tokenizer = new CompoundCharacterTokenizer(
+                new HashSet<>(Arrays.asList(new String[] { "67_112_96", "74_112_76" })));
+        String text = "94_67_112_96_112_91_103";
+
+        // when
+        List<String> tokens = tokenizer.tokenize(text);
+
+        // then
+        StringBuilder sb = new StringBuilder();
+        for (String token : tokens)
+        {
+            sb.append(token);
+        }
+
+        assertEquals(text, sb.toString());
+        assertEquals(Arrays.asList("94_", "67_112_96", "_112_91_103"), tokens);
+    }
+
+    @Test
+    public void testTokenize_happyPath_5()
+    {
+
+        // given
+        CompoundCharacterTokenizer tokenizer = new CompoundCharacterTokenizer(
+                new HashSet<>(Arrays.asList(new String[] { "67_112", "76_112" })));
+        String text = "94_167_112_91_103";
+
+        // when
+        List<String> tokens = tokenizer.tokenize(text);
+
+        // then
+        StringBuilder sb = new StringBuilder();
+        for (String token : tokens)
+        {
+            sb.append(token);
+        }
+
+        assertEquals(text, sb.toString());
+        assertEquals(Arrays.asList("94_1", "67_112", "_91_103"), tokens);
+    }
+
+    @Test
+    public void testTokenize_regexAtStart()
+    {
+        // given
+        CompoundCharacterTokenizer tokenizer = new CompoundCharacterTokenizer(
+                new HashSet<>(Arrays.asList(new String[] { "HrkJj", "68RetP", "Yx!23uyt" })));
+        String text = "Yx!23uyte12345HrkJjxabbcc68RetPxxxcfb1245678Yx!23uyt889000";
+
+        // when
+        List<String> tokens = tokenizer.tokenize(text);
+
+        // then
+        StringBuilder sb = new StringBuilder();
+        for (String token : tokens)
+        {
+            sb.append(token);
+        }
+
+        assertEquals(text, sb.toString());
+
+        List<String> tokenList = tokens;
+
+        assertEquals(0, tokenList.indexOf("Yx!23uyt"));
+    }
+
+    @Test
+    public void testTokenize_regexAtEnd()
+    {
+        // given
+        CompoundCharacterTokenizer tokenizer = new CompoundCharacterTokenizer(
+                new HashSet<>(Arrays.asList(new String[] { "HrkJj", "68RetP", "Yx!23uyt" })));
+        String text = "Yx!23uyte12345HrkJjxabbcc68RetPxxxcfb1245678Yx!23uyt889000HrkJj";
+
+        // when
+        List<String> tokens = tokenizer.tokenize(text);
+
+        // then
+        StringBuilder sb = new StringBuilder();
+        for (String token : tokens)
+        {
+            sb.append(token);
+        }
+
+        assertEquals(text, sb.toString());
+        assertEquals(0, tokens.indexOf("Yx!23uyt"));
+        assertEquals(2, tokens.indexOf("HrkJj"));
+        assertEquals(tokens.size() - 1, tokens.lastIndexOf("HrkJj"));
+    }
+
+    @Test
+    public void testTokenize_Bangla()
+    {
+        // given
+        CompoundCharacterTokenizer tokenizer = new CompoundCharacterTokenizer(new HashSet<>(
+                Arrays.asList(new String[] { "\u0995\u09cd\u09b7", "\u09aa\u09c1\u09a4\u09c1" })));
+        String text = "\u0986\u09ae\u09bf \u0995\u09cb\u09a8 \u09aa\u09a5\u09c7  \u0995\u09cd\u09b7\u09c0\u09b0\u09c7\u09b0 \u09b7\u09a8\u09cd\u09a1  \u09aa\u09c1\u09a4\u09c1\u09b2 \u09b0\u09c1\u09aa\u09cb  \u0997\u0999\u09cd\u0997\u09be \u098b\u09b7\u09bf";
+
+        // when
+        List<String> tokens = tokenizer.tokenize(text);
+
+        // then
+        StringBuilder sb = new StringBuilder();
+        for (String token : tokens)
+        {
+            sb.append(token);
+        }
+
+        assertEquals(text, sb.toString());
+
+        List<String> tokenList = tokens;
+
+        assertTrue(tokenList.contains("\u0995\u09cd\u09b7"));
+        assertTrue(tokenList.contains("\u09aa\u09c1\u09a4\u09c1"));
+    }
+
+}

Propchange: pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/gsub/CompoundCharacterTokenizerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/gsub/GlyphArraySplitterRegexImplTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/gsub/GlyphArraySplitterRegexImplTest.java?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/gsub/GlyphArraySplitterRegexImplTest.java (added)
+++ pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/gsub/GlyphArraySplitterRegexImplTest.java Sat Apr 21 14:17:29 2018
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fontbox.ttf.gsub;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.junit.Test;
+
+public class GlyphArraySplitterRegexImplTest
+{
+
+    @Test
+    public void testSplit_1()
+    {
+        // given
+        Set<List<Integer>> matchers = new HashSet<>(Arrays.asList(Arrays.asList(84, 93),
+                Arrays.asList(102, 82), Arrays.asList(104, 87)));
+        GlyphArraySplitter testClass = new GlyphArraySplitterRegexImpl(matchers);
+        List<Integer> glyphIds = Arrays.asList(84, 112, 93, 104, 82, 61, 96, 102, 93, 104, 87, 110);
+
+        // when
+        List<List<Integer>> tokens = testClass.split(glyphIds);
+
+        // then
+        assertEquals(Arrays.asList(Arrays.asList(84, 112, 93, 104, 82, 61, 96, 102, 93),
+                Arrays.asList(104, 87), Arrays.asList(110)), tokens);
+    }
+
+    @Test
+    public void testSplit_2()
+    {
+
+        // given
+        Set<List<Integer>> matchers = new HashSet<>(
+                Arrays.asList(Arrays.asList(67, 112, 96), Arrays.asList(74, 112, 76)));
+        GlyphArraySplitter testClass = new GlyphArraySplitterRegexImpl(matchers);
+        List<Integer> glyphIds = Arrays.asList(67, 112, 96, 103, 93, 108, 93);
+
+        // when
+        List<List<Integer>> tokens = testClass.split(glyphIds);
+
+        // then
+        assertEquals(Arrays.asList(Arrays.asList(67, 112, 96), Arrays.asList(103, 93, 108, 93)),
+                tokens);
+    }
+
+    @Test
+    public void testSplit_3()
+    {
+
+        // given
+        Set<List<Integer>> matchers = new HashSet<>(
+                Arrays.asList(Arrays.asList(67, 112, 96), Arrays.asList(74, 112, 76)));
+        GlyphArraySplitter testClass = new GlyphArraySplitterRegexImpl(matchers);
+        List<Integer> glyphIds = Arrays.asList(94, 67, 112, 96, 112, 91, 103);
+
+        // when
+        List<List<Integer>> tokens = testClass.split(glyphIds);
+
+        // then
+        assertEquals(Arrays.asList(Arrays.asList(94), Arrays.asList(67, 112, 96),
+                Arrays.asList(112, 91, 103)), tokens);
+    }
+
+    @Test
+    public void testSplit_4()
+    {
+
+        // given
+        Set<List<Integer>> matchers = new HashSet<>(
+                Arrays.asList(Arrays.asList(67, 112), Arrays.asList(76, 112)));
+        GlyphArraySplitter testClass = new GlyphArraySplitterRegexImpl(matchers);
+        List<Integer> glyphIds = Arrays.asList(94, 167, 112, 91, 103);
+
+        // when
+        List<List<Integer>> tokens = testClass.split(glyphIds);
+
+        // then
+        assertEquals(Arrays.asList(Arrays.asList(94, 167, 112, 91, 103)), tokens);
+    }
+
+}

Propchange: pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/gsub/GlyphArraySplitterRegexImplTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/abvs.txt
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/abvs.txt?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/abvs.txt (added)
+++ pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/abvs.txt Sat Apr 21 14:17:29 2018
@@ -0,0 +1,29 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#				NOTE:	This file is used for testing only, and might change frequently and without any prior notice
+#
+# 				This file contains the raw GSUB table data that can be extracted from the Lohit-Bengali.ttf font file. The name of the file 
+#				is the name of the *feature* of the GSUB Table. 
+#				Each line of this file is formatted as:
+#            		<Comma separated list of GlyphIds that the new GlyphId would be replacing>=<The new GlyphId to be substituted>
+#
+
+52,114=437
+52,103=436
+103,52=436
+114,52=437

Propchange: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/abvs.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/akhn.txt
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/akhn.txt?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/akhn.txt (added)
+++ pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/akhn.txt Sat Apr 21 14:17:29 2018
@@ -0,0 +1,27 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#				NOTE:	This file is used for testing only, and might change frequently and without any prior notice
+#
+# 				This file contains the raw GSUB table data that can be extracted from the Lohit-Bengali.ttf font file. The name of the file 
+#				is the name of the *feature* of the GSUB Table. 
+#				Each line of this file is formatted as:
+#            		<Comma separated list of GlyphIds that the new GlyphId would be replacing>=<The new GlyphId to be substituted>
+#
+
+67,112,96=167
+74,112,76=214

Propchange: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/akhn.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/blwf.txt
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/blwf.txt?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/blwf.txt (added)
+++ pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/blwf.txt Sat Apr 21 14:17:29 2018
@@ -0,0 +1,28 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#				NOTE:	This file is used for testing only, and might change frequently and without any prior notice
+#
+# 				This file contains the raw GSUB table data that can be extracted from the Lohit-Bengali.ttf font file. The name of the file 
+#				is the name of the *feature* of the GSUB Table. 
+#				Each line of this file is formatted as:
+#            		<Comma separated list of GlyphIds that the new GlyphId would be replacing>=<The new GlyphId to be substituted>
+#
+
+112,89=472
+112,93=442
+112,132=442

Propchange: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/blwf.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/blws.txt
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/blws.txt?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/blws.txt (added)
+++ pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/blws.txt Sat Apr 21 14:17:29 2018
@@ -0,0 +1,84 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#				NOTE:	This file is used for testing only, and might change frequently and without any prior notice
+#
+# 				This file contains the raw GSUB table data that can be extracted from the Lohit-Bengali.ttf font file. The name of the file 
+#				is the name of the *feature* of the GSUB Table. 
+#				Each line of this file is formatted as:
+#            		<Comma separated list of GlyphIds that the new GlyphId would be replacing>=<The new GlyphId to be substituted>
+#
+
+67,472=166
+68,472=174
+69,144,104=175
+69,472=187
+69,104=175
+70,472=190
+72,112,89=208
+73,472=210
+74,472=216
+77,472=228
+79,472=234
+81,472=247
+82,472=257
+83,472=261
+84,472=276
+85,472=282
+86,472=304
+89,472=328
+91,472=345
+93,105=353
+93,104=352
+94,472=366
+95,144,104=370
+95,472=376
+95,104=370
+96,472=392
+97,472=412
+98,472=422
+98,106=419
+98,104=418
+115,112=477
+132,105=431
+132,104=430
+133,105=433
+133,104=432
+183,105=185
+183,104=184
+227,104=259
+229,105=260
+235,105=281
+235,104=280
+253,105=255
+253,104=254
+273,105=275
+273,104=274
+289,104=290
+307,104=308
+313,105=315
+313,104=314
+330,105=332
+330,104=331
+334,105=336
+334,104=335
+355,144,104=356
+377,105=380
+377,104=379
+401,104=402
+414,105=416
+414,104=415

Propchange: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/blws.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/half.txt
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/half.txt?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/half.txt (added)
+++ pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/half.txt Sat Apr 21 14:17:29 2018
@@ -0,0 +1,53 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#				NOTE:	This file is used for testing only, and might change frequently and without any prior notice
+#
+# 				This file contains the raw GSUB table data that can be extracted from the Lohit-Bengali.ttf font file. The name of the file 
+#				is the name of the *feature* of the GSUB Table. 
+#				Each line of this file is formatted as:
+#            		<Comma separated list of GlyphIds that the new GlyphId would be replacing>=<The new GlyphId to be substituted>
+#
+
+67,112=444
+69,112=446
+70,112=447
+71,112=448
+72,112=449
+74,112=451
+76,112=453
+77,112=454
+79,112=456
+80,112=457
+81,112=458
+82,112,145=113
+82,112=459
+83,112=460
+84,112=461
+85,112=462
+86,112=463
+87,112=464
+88,112=465
+89,112=466
+90,112=467
+91,112=468
+94,112=471
+95,112=473
+96,112=474
+97,112=475
+98,112=476
+115,112=477

Propchange: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/half.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/haln.txt
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/haln.txt?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/haln.txt (added)
+++ pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/haln.txt Sat Apr 21 14:17:29 2018
@@ -0,0 +1,61 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#				NOTE:	This file is used for testing only, and might change frequently and without any prior notice
+#
+# 				This file contains the raw GSUB table data that can be extracted from the Lohit-Bengali.ttf font file. The name of the file 
+#				is the name of the *feature* of the GSUB Table. 
+#				Each line of this file is formatted as:
+#            		<Comma separated list of GlyphIds that the new GlyphId would be replacing>=<The new GlyphId to be substituted>
+#
+
+67,112=444
+68,112=445
+69,112=446
+70,112=447
+71,112=448
+72,112=449
+73,112=450
+74,112=451
+75,112=452
+76,112=453
+77,112=454
+78,112=455
+79,112=456
+80,112=457
+81,112=458
+82,112=459
+83,112=460
+84,112=461
+85,112=462
+86,112=463
+87,112=464
+88,112=465
+89,112=466
+90,112=467
+91,112=468
+92,112=469
+94,112=471
+95,112=473
+96,112=474
+97,112=475
+98,112=476
+116,112=478
+117,112=479
+132,112=482
+133,112=481
+172,112=480

Propchange: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/haln.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/init.txt
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/init.txt?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/init.txt (added)
+++ pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/init.txt Sat Apr 21 14:17:29 2018
@@ -0,0 +1,27 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#				NOTE:	This file is used for testing only, and might change frequently and without any prior notice
+#
+# 				This file contains the raw GSUB table data that can be extracted from the Lohit-Bengali.ttf font file. The name of the file 
+#				is the name of the *feature* of the GSUB Table. 
+#				Each line of this file is formatted as:
+#            		<Comma separated list of GlyphIds that the new GlyphId would be replacing>=<The new GlyphId to be substituted>
+#
+
+108=438
+109=439

Propchange: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/init.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/nukt.txt
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/nukt.txt?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/nukt.txt (added)
+++ pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/nukt.txt Sat Apr 21 14:17:29 2018
@@ -0,0 +1,28 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#				NOTE:	This file is used for testing only, and might change frequently and without any prior notice
+#
+# 				This file contains the raw GSUB table data that can be extracted from the Lohit-Bengali.ttf font file. The name of the file 
+#				is the name of the *feature* of the GSUB Table. 
+#				Each line of this file is formatted as:
+#            		<Comma separated list of GlyphIds that the new GlyphId would be replacing>=<The new GlyphId to be substituted>
+#
+
+79,99=115
+80,99=116
+92,99=117

Propchange: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/nukt.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/pres.txt
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/pres.txt?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/pres.txt (added)
+++ pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/pres.txt Sat Apr 21 14:17:29 2018
@@ -0,0 +1,217 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#				NOTE:	This file is used for testing only, and might change frequently and without any prior notice
+#
+# 				This file contains the raw GSUB table data that can be extracted from the Lohit-Bengali.ttf font file. The name of the file 
+#				is the name of the *feature* of the GSUB Table. 
+#				Each line of this file is formatted as:
+#            		<Comma separated list of GlyphIds that the new GlyphId would be replacing>=<The new GlyphId to be substituted>
+#
+
+67,112,96,472=171
+67,112,96,442=170
+67,112,82,472=161
+67,112,253=160
+69,112,85,472=179
+69,112,279=180
+71,112,67,112,391=194
+71,112,67,112,96=193
+71,112,189=198
+71,112,164=192
+76,112,72,472=219
+77,112,82,112,93=225
+81,112,235=243
+81,112,233=241
+81,112,229=239
+81,112,227=237
+84,112,334=271
+84,112,273=265
+86,112,258=294
+86,112,233=287
+86,112,227=284
+86,442=303
+87,112,253=309
+89,112,75=322
+91,112,319=344
+94,112,233=361
+94,112,227=359
+94,472=366
+97,112,82,472=404
+97,112,313=408
+167,112,91=169
+167,112,81=168
+444,227=484
+444,97=172
+444,94=165
+444,91=163
+444,86=162
+444,82=159
+444,77=158
+444,67=157
+446,94=186
+446,91=182
+446,86=181
+446,85=178
+446,84=177
+446,69=176
+447,86=188
+448,91=199
+448,70=197
+448,69=196
+448,68=195
+448,67=191
+449,73,472=204
+449,76=205
+449,86=206
+449,209=203
+449,73=202
+449,72=201
+450,89=210
+450,93=209
+451,74,472=212
+451,76=214
+451,75=213
+451,89=216
+451,74=211
+453,85=223
+453,75=222
+453,74=221
+453,73=220
+453,72=218
+454,91=226
+454,77=224
+456,91=232
+456,79=231
+456,69=230
+458,91=245
+458,81=244
+458,80=242
+458,79=240
+458,78=238
+458,77=236
+459,82,472=249
+459,91=252
+459,86=251
+459,83=250
+459,94=256
+459,82=248
+461,85,472=268
+461,84,472=266
+461,86=269
+461,91=272
+461,85=267
+461,90=270
+461,84=264
+461,70=263
+461,69=262
+462,91=278
+462,86=277
+463,85,472=299
+463,84,472=297
+463,82,472=292
+463,279=300
+463,97=305
+463,85=298
+463,91=302
+463,273=296
+463,84=295
+463,83=293
+463,86=301
+463,253=291
+463,82=289
+463,79=286
+463,78=285
+463,77=283
+464,97=317
+464,94=316
+464,91=312
+464,87=311
+464,86=310
+464,82=307
+464,77=306
+465,94=320
+465,77=318
+466,94=333
+466,89=328
+466,85=327
+466,273=326
+466,84=325
+466,74=321
+467,94=337
+468,83=485
+468,94=350
+468,91=348
+468,334=347
+468,90=346
+468,88=343
+468,313=342
+468,87=341
+468,86=340
+468,84=339
+468,82=338
+471,85=487
+471,82=486
+471,94=369
+471,91=367
+471,88=365
+471,87=364
+471,84=363
+471,80=362
+471,79=360
+471,77=358
+471,70=357
+471,69=355
+471,67=354
+472,90=329
+472,80=324
+472,79=323
+473,94=381
+473,91=375
+473,86=374
+473,82=373
+473,73=372
+473,72=371
+474,91=393
+474,88=390
+474,313=389
+474,87=388
+474,81=387
+474,78=386
+474,227=385
+474,77=384
+474,164=383
+474,67=382
+475,94=417
+475,91=413
+475,88=411
+475,316=410
+475,87=407
+475,86=406
+475,83=405
+475,253=403
+475,82=401
+475,227=399
+475,77=398
+475,68=397
+475,164=395
+475,67=394
+476,94=425
+476,91=423
+476,86=421
+476,81=420
+477,69=426

Propchange: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/pres.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/pstf.txt
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/pstf.txt?rev=1829710&view=auto
==============================================================================
--- pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/pstf.txt (added)
+++ pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/pstf.txt Sat Apr 21 14:17:29 2018
@@ -0,0 +1,26 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#				NOTE:	This file is used for testing only, and might change frequently and without any prior notice
+#
+# 				This file contains the raw GSUB table data that can be extracted from the Lohit-Bengali.ttf font file. The name of the file 
+#				is the name of the *feature* of the GSUB Table. 
+#				Each line of this file is formatted as:
+#            		<Comma separated list of GlyphIds that the new GlyphId would be replacing>=<The new GlyphId to be substituted>
+#
+
+112,92=156

Propchange: pdfbox/trunk/fontbox/src/test/resources/gsub/lohit_bengali/bng2/pstf.txt
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message