fop 2.2

org.apache.fop.fonts.truetype
Class OTFSubSetFile

java.lang.Object
  extended by org.apache.fop.fonts.truetype.OpenFont
      extended by org.apache.fop.fonts.truetype.OTFFile
          extended by org.apache.fop.fonts.truetype.OTFSubSetWriter
              extended by 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.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, realSize
 
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, java.lang.String header, MultiByteFont mbFont)
           
protected  java.util.List<java.lang.Integer> storeFDStrings(java.util.List<java.lang.Integer> uniqueNewRefs)
           
protected  void updateCIDOffsets(int topDictDataOffset, int fdArrayOffset, int fdSelectOffset, int charsetOffset, int charStringOffset, int encodingOffset)
           
protected  void updateFixedOffsets(java.util.Map<java.lang.String,CFFDataReader.DICTEntry> topDICT, int dataTopDictOffset, int charsetOffset, int charStringOffset, int encodingOffset)
           
protected  void updateOffset(byte[] out, int position, int length, int replacement)
           
protected  void updateOffsets(int topDictOffset, int charsetOffset, int charStringOffset, int privateDictOffset, int localIndexOffset, int encodingOffset)
           
protected  void 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  void writePrivateDict()
           
protected  void writeTopDICT()
           
 
Methods inherited from class org.apache.fop.fonts.truetype.OTFSubSetWriter
concatArray, getFontSubset, writeByte, writeBytes, writeBytes, writeCard16, writeThreeByteNumber, writeULong
 
Methods inherited from class org.apache.fop.fonts.truetype.OTFFile
getCFFData, initializeFont, 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, 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

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,
                     java.lang.String header,
                     MultiByteFont mbFont)
              throws java.io.IOException
Throws:
java.io.IOException

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 void writeTopDICT()
                     throws java.io.IOException
Throws:
java.io.IOException

writeCIDCount

protected void 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)

writePrivateDict

protected void writePrivateDict()
                         throws java.io.IOException
Throws:
java.io.IOException

updateOffsets

protected void updateOffsets(int topDictOffset,
                             int charsetOffset,
                             int charStringOffset,
                             int privateDictOffset,
                             int localIndexOffset,
                             int encodingOffset)
                      throws java.io.IOException
Throws:
java.io.IOException

updateFixedOffsets

protected void updateFixedOffsets(java.util.Map<java.lang.String,CFFDataReader.DICTEntry> topDICT,
                                  int dataTopDictOffset,
                                  int charsetOffset,
                                  int charStringOffset,
                                  int encodingOffset)

updateCIDOffsets

protected void updateCIDOffsets(int topDictDataOffset,
                                int fdArrayOffset,
                                int fdSelectOffset,
                                int charsetOffset,
                                int charStringOffset,
                                int encodingOffset)

updateOffset

protected void updateOffset(byte[] out,
                            int position,
                            int length,
                            int replacement)

getCFFReader

public CFFDataReader getCFFReader()
Returns the parsed CFF data for the original font.

Returns:
The CFFDataReader contaiing the parsed data

fop 2.2

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