fop 2.3

## org.apache.fop.fonts.truetype
Class OTFSubSetFile

    java.lang.Object
      org.apache.fop.fonts.truetype.OpenFont
          org.apache.fop.fonts.truetype.OTFFile
              org.apache.fop.fonts.truetype.OTFSubSetWriter
                  org.apache.fop.fonts.truetype.OTFSubSetFile

    public class OTFSubSetFile

extends OTFSubSetWriter

Reads an OpenType CFF file and generates a subset The OpenType specification can be found at the Microsoft Typography site: http://www.microsoft.com/typography/otspec/

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.fop.fonts.truetype.OpenFont
`OpenFont.PostScriptVersion`

Field Summary
`protected CFFDataReader` `cffReader` The CFF reader object used to read data and offsets from the original font file
`protected java.lang.String` `embeddedName` The embedded name to change in the name table
`protected java.util.List<java.util.List<byte[]>>` `fdSubrs` For fonts which have an FDSelect or ROS flag in Top Dict, this is used to store the local subroutine indexes for each group as opposed to the above subsetLocalIndexSubr
`protected java.util.Map<java.lang.Integer,java.lang.Integer>` `gidToSID` A map of the new GID to SID used to construct the charset table
`protected CFFDataReader.CFFIndexData` `globalIndexSubr`
`protected java.util.List<java.lang.Integer>` `globalUniques`
`protected CFFDataReader.CFFIndexData` `localIndexSubr`
`protected java.util.List<java.lang.Integer>` `localUniques` A list of unique subroutines from the global / local subroutine indexes
`static int` `NUM_STANDARD_STRINGS` The number of standard strings in CFF
`protected java.util.List<byte[]>` `stringIndexData` An array used to hold the string index data for the subset font
`protected java.util.List<byte[]>` `subsetCharStringsIndex` A list of char string data for each glyph to be stored in the subset font
`protected java.util.List<byte[]>` `subsetGlobalIndexSubr`
`protected int` `subsetGlobalSubrCount`
`protected java.util.Map<java.lang.Integer,java.lang.Integer>` `subsetGlyphs` A map containing each glyph to be included in the subset with their existing and new GID's
`protected java.util.List<byte[]>` `subsetLocalIndexSubr` List of subroutines to write to the local / global indexes in the subset font
`protected int` `subsetLocalSubrCount` A store of the number of subroutines each global / local subroutine will store

Fields inherited from class org.apache.fop.fonts.truetype.OTFSubSetWriter
`currentPos, output`

Fields inherited from class org.apache.fop.fonts.truetype.OTFFile
`fileFont`

Fields inherited from class org.apache.fop.fonts.truetype.OpenFont
`advancedTableReader, cid, dirTabs, embedFontName, familyNames, fontFile, fullName, lastLoca, locaFormat, log, mtxTab, nhmtx, notice, numberOfGlyphs, postScriptName, subFamilyName, TRACE_ENABLED, unicodeMappings, useAdvanced, useKerning`

Constructor Summary
`OTFSubSetFile()`

Method Summary
`protected void` `createCFF()`
`protected void` `createCharStringDataCID()`
`static byte[]` `createNewRef(int newRef, int[] operatorCode, int forceLength, boolean isDict)`
`CFFDataReader` `getCFFReader()` Returns the parsed CFF data for the original font.
`protected java.util.List<java.lang.Integer>` `getUsedFDFonts()`
`void` `readFont(FontFileReader in, java.lang.String embeddedName, MultiByteFont mbFont)` Reads a font.
`protected java.util.List<java.lang.Integer>` `storeFDStrings(java.util.List<java.lang.Integer> uniqueNewRefs)`
`protected void` `updateCIDOffsets(org.apache.fop.fonts.truetype.OTFSubSetFile.Offsets offsets)`
`protected void` `updateFixedOffsets(java.util.Map<java.lang.String,CFFDataReader.DICTEntry> topDICT, org.apache.fop.fonts.truetype.OTFSubSetFile.Offsets offsets)`
`protected void` `updateOffsets(org.apache.fop.fonts.truetype.OTFSubSetFile.Offsets offsets)`
`protected byte[]` `writeCIDCount(CFFDataReader.DICTEntry dictEntry)`
`protected java.util.List<java.lang.Integer>` `writeCIDDictsAndSubrs(java.util.List<java.lang.Integer> uniqueNewRefs)`
`protected int` `writeFDArray(java.util.List<java.lang.Integer> uniqueNewRefs, java.util.List<java.lang.Integer> privateDictOffsets, java.util.List<java.lang.Integer> fontNameSIDs)`
`protected void` `writeFDSelect()`
`protected int` `writeIndex(java.util.List<byte[]> dataArray)`
`protected int` `writeIndex(java.util.List<byte[]> dataArray, int offSize)`
`protected void` `writePrivateDict()`
`protected int` `writeTopDICT()`

Methods inherited from class org.apache.fop.fonts.truetype.OTFSubSetWriter
`concatArray, getFontSubset, writeByte, writeBytes, writeCard16, writeThreeByteNumber, writeULong`

Methods inherited from class org.apache.fop.fonts.truetype.OTFFile
`getCFFData, initializeFont, isType1, readName, updateBBoxAndOffset`

Methods inherited from class org.apache.fop.fonts.truetype.OpenFont

`checkTTC, convertTTFUnit2PDFUnit, createCMaps, determineAscDesc, getAnsiKerning, getBBox, getBBoxRaw, getBoundingBoxes, getCapHeight, getCharSetName, getCharWidth, getCharWidthRaw, getCMaps, getCopyrightNotice, getDirectoryEntry, getEmbedFontName, getFamilyNames, getFirstChar, getFlags, getFontBBox, getFullName, getGDEF, getGPOS, getGSUB, getItalicAngle, getKerning, getLastChar, getLowerCaseAscent, getLowerCaseDescent, getMtx, getNumGlyphs, getPadSize, getPostScriptName, getStemV, getStrikeoutPosition, getStrikeoutThickness, getSubFamilyName, getTTCnames, getUnderlinePosition, getUnderlineThickness, getWeightClass, getWidths, getXHeight, guessVerticalMetricsFromGlyphBBox, handleCharacterSpacing, hasAdvancedTable, initAnsiWidths, isCFF, isEmbeddable, main, printStuff, readCMAP, readDirTabs, readFont, readFont, readFontHeader, readHorizontalHeader, readHorizontalMetrics, readKerning, readOS2, readPCLT, readPostScript, seekTab, stream`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### subsetGlyphs

    protected java.util.Map<java.lang.Integer,java.lang.Integer> subsetGlyphs

  A map containing each glyph to be included in the subset with their existing and new GID's

### gidToSID

    protected java.util.Map<java.lang.Integer,java.lang.Integer> gidToSID

  A map of the new GID to SID used to construct the charset table

### localIndexSubr

    protected CFFDataReader.CFFIndexData localIndexSubr

### globalIndexSubr

    protected CFFDataReader.CFFIndexData globalIndexSubr

### subsetLocalIndexSubr

    protected java.util.List<byte[]> subsetLocalIndexSubr

  List of subroutines to write to the local / global indexes in the subset font

### subsetGlobalIndexSubr

    protected java.util.List<byte[]> subsetGlobalIndexSubr

### fdSubrs

    protected java.util.List<java.util.List<byte[]>> fdSubrs

  For fonts which have an FDSelect or ROS flag in Top Dict, this is used to store the local subroutine indexes for each group as opposed to the above subsetLocalIndexSubr

### localUniques

    protected java.util.List<java.lang.Integer> localUniques

  A list of unique subroutines from the global / local subroutine indexes

### globalUniques

    protected java.util.List<java.lang.Integer> globalUniques

### subsetLocalSubrCount

    protected int subsetLocalSubrCount

  A store of the number of subroutines each global / local subroutine will store

### subsetGlobalSubrCount

    protected int subsetGlobalSubrCount

### subsetCharStringsIndex

    protected java.util.List<byte[]> subsetCharStringsIndex

  A list of char string data for each glyph to be stored in the subset font

### embeddedName

    protected java.lang.String embeddedName

  The embedded name to change in the name table

### stringIndexData

    protected java.util.List<byte[]> stringIndexData

  An array used to hold the string index data for the subset font

### cffReader

    protected CFFDataReader cffReader

  The CFF reader object used to read data and offsets from the original font file

### NUM_STANDARD_STRINGS

    public static final int NUM_STANDARD_STRINGS

  The number of standard strings in CFF

  See Also:
    Constant Field Values

Constructor Detail

### OTFSubSetFile

    public OTFSubSetFile()
                  throws java.io.IOException

Throws:
  `java.io.IOException`

Method Detail

### readFont

    public void readFont(FontFileReader in,
                         java.lang.String embeddedName,
                         MultiByteFont mbFont)
                  throws java.io.IOException

  Description copied from class: `OpenFont`
  Reads a font.

  Overrides:
    `readFont` in class `OpenFont`
  Parameters:
    `in` - FontFileReader to read from
  Throws:
    `java.io.IOException` - in case of an I/O problem

### createCFF

    protected void createCFF()
                      throws java.io.IOException

  Throws:
    `java.io.IOException`

### storeFDStrings

    protected java.util.List<java.lang.Integer> storeFDStrings(java.util.List<java.lang.Integer> uniqueNewRefs)
                                                        throws java.io.IOException

  Throws:
    `java.io.IOException`

### writeTopDICT

    protected int writeTopDICT()
                        throws java.io.IOException

  Throws:
    `java.io.IOException`

### writeCIDCount

    protected byte[] writeCIDCount(CFFDataReader.DICTEntry dictEntry)
                            throws java.io.IOException

  Throws:
    `java.io.IOException`

### createCharStringDataCID

    protected void createCharStringDataCID()
                                    throws java.io.IOException

  Throws:
    `java.io.IOException`

### writeFDSelect

    protected void writeFDSelect()

### getUsedFDFonts

    protected java.util.List<java.lang.Integer> getUsedFDFonts()

### writeCIDDictsAndSubrs

    protected java.util.List<java.lang.Integer> writeCIDDictsAndSubrs(java.util.List<java.lang.Integer> uniqueNewRefs)
                                                               throws java.io.IOException

  Throws:
    `java.io.IOException`

### writeFDArray

    protected int writeFDArray(java.util.List<java.lang.Integer> uniqueNewRefs,
                               java.util.List<java.lang.Integer> privateDictOffsets,
                               java.util.List<java.lang.Integer> fontNameSIDs)
                        throws java.io.IOException

  Throws:
    `java.io.IOException`

### createNewRef

    public static byte[] createNewRef(int newRef,
                                      int[] operatorCode,
                                      int forceLength,
                                      boolean isDict)

### writeIndex

    protected int writeIndex(java.util.List<byte[]> dataArray)

### writeIndex

    protected int writeIndex(java.util.List<byte[]> dataArray,
                             int offSize)

### writePrivateDict

    protected void writePrivateDict()
                             throws java.io.IOException

  Throws:
    `java.io.IOException`

### updateOffsets

    protected void updateOffsets(org.apache.fop.fonts.truetype.OTFSubSetFile.Offsets offsets)
                          throws java.io.IOException

  Throws:
    `java.io.IOException`

### updateFixedOffsets

    protected void updateFixedOffsets(java.util.Map<java.lang.String,CFFDataReader.DICTEntry> topDICT,
                                      org.apache.fop.fonts.truetype.OTFSubSetFile.Offsets offsets)
                               throws java.io.IOException

  Throws:
    `java.io.IOException`

### updateCIDOffsets

    protected void updateCIDOffsets(org.apache.fop.fonts.truetype.OTFSubSetFile.Offsets offsets)
                             throws java.io.IOException

  Throws:
    `java.io.IOException`

### getCFFReader

    public CFFDataReader getCFFReader()

  Returns the parsed CFF data for the original font.

  Returns:
    The CFFDataReader contaiing the parsed data

fop 2.3

Copyright 1999-2018 The Apache Software Foundation. All Rights Reserved.