public class OTFSubSetFile extends OTFFile
OpenFont.PostScriptVersion| Modifier and Type | Field and Description |
|---|---|
protected CFFDataReader |
cffReader
The CFF reader object used to read data and offsets from the original font file
|
protected int |
currentPos |
protected java.lang.String |
embeddedName
The embedded name to change in the name table
|
protected java.util.LinkedHashMap<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 byte[] |
output |
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.LinkedHashMap<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
|
advancedTableReader, cid, dirTabs, familyNames, fontFile, fullName, lastLoca, locaFormat, log, mtxTab, nhmtx, notice, numberOfGlyphs, postScriptName, subFamilyName, TRACE_ENABLED, unicodeMappings, useAdvanced, useKerning| Constructor and Description |
|---|
OTFSubSetFile() |
| Modifier and Type | Method and Description |
|---|---|
static byte[] |
concatArray(byte[] a,
byte[] b) |
protected void |
createCFF() |
protected void |
createCharStringDataCID() |
static byte[] |
createNewRef(int newRef,
int[] operatorCode,
int forceLength) |
CFFDataReader |
getCFFReader()
Returns the parsed CFF data for the original font.
|
byte[] |
getFontSubset()
Returns a subset of the fonts (readFont() MUST be called first in order to create the
subset).
|
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 byte[] |
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 |
writeByte(int b)
Appends a byte to the output array,
updates currentPost but not realSize
|
protected void |
writeBytes(byte[] out) |
protected void |
writeBytes(byte[] out,
int offset,
int length) |
protected void |
writeCard16(int s)
Appends a USHORT to the output array,
updates currentPost but not realSize
|
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() |
getCFFData, initializeFont, readName, updateBBoxAndOffsetcheckTTC, convertTTFUnit2PDFUnit, createCMaps, determineAscDesc, getAnsiKerning, getBBox, getBBoxRaw, getBoundingBoxes, getCapHeight, getCharSetName, getCharWidth, getCharWidthRaw, getCMaps, getCopyrightNotice, getDirectoryEntry, 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, streamprotected byte[] output
protected int currentPos
protected java.util.LinkedHashMap<java.lang.Integer,java.lang.Integer> subsetGlyphs
protected java.util.LinkedHashMap<java.lang.Integer,java.lang.Integer> gidToSID
protected CFFDataReader.CFFIndexData localIndexSubr
protected CFFDataReader.CFFIndexData globalIndexSubr
protected java.util.List<byte[]> subsetLocalIndexSubr
protected java.util.List<byte[]> subsetGlobalIndexSubr
protected java.util.List<java.lang.Integer> localUniques
protected java.util.List<java.lang.Integer> globalUniques
protected int subsetLocalSubrCount
protected int subsetGlobalSubrCount
protected java.util.List<byte[]> subsetCharStringsIndex
protected java.lang.String embeddedName
protected java.util.List<byte[]> stringIndexData
protected CFFDataReader cffReader
public static final int NUM_STANDARD_STRINGS
public OTFSubSetFile()
throws java.io.IOException
java.io.IOExceptionpublic void readFont(FontFileReader in, java.lang.String embeddedName, java.lang.String header, MultiByteFont mbFont) throws java.io.IOException
java.io.IOExceptionprotected void createCFF()
throws java.io.IOException
java.io.IOExceptionprotected java.util.List<java.lang.Integer> storeFDStrings(java.util.List<java.lang.Integer> uniqueNewRefs)
throws java.io.IOException
java.io.IOExceptionprotected void writeBytes(byte[] out)
protected void writeBytes(byte[] out,
int offset,
int length)
protected void writeTopDICT()
throws java.io.IOException
java.io.IOExceptionprotected void writeCIDCount(CFFDataReader.DICTEntry dictEntry) throws java.io.IOException
java.io.IOExceptionprotected void createCharStringDataCID()
throws java.io.IOException
java.io.IOExceptionprotected void writeFDSelect()
protected java.util.List<java.lang.Integer> getUsedFDFonts()
protected java.util.List<java.lang.Integer> writeCIDDictsAndSubrs(java.util.List<java.lang.Integer> uniqueNewRefs)
throws java.io.IOException
java.io.IOExceptionprotected 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
java.io.IOExceptionpublic static byte[] createNewRef(int newRef,
int[] operatorCode,
int forceLength)
public static byte[] concatArray(byte[] a,
byte[] b)
protected int writeIndex(java.util.List<byte[]> dataArray)
protected void writePrivateDict()
throws java.io.IOException
java.io.IOExceptionprotected void updateOffsets(int topDictOffset,
int charsetOffset,
int charStringOffset,
int privateDictOffset,
int localIndexOffset,
int encodingOffset)
throws java.io.IOException
java.io.IOExceptionprotected void updateFixedOffsets(java.util.Map<java.lang.String,CFFDataReader.DICTEntry> topDICT, int dataTopDictOffset, int charsetOffset, int charStringOffset, int encodingOffset)
protected void updateCIDOffsets(int topDictDataOffset,
int fdArrayOffset,
int fdSelectOffset,
int charsetOffset,
int charStringOffset,
int encodingOffset)
protected byte[] updateOffset(byte[] out,
int position,
int length,
int replacement)
protected void writeByte(int b)
protected void writeCard16(int s)
public byte[] getFontSubset()
public CFFDataReader getCFFReader()
Copyright 1999-2016 The Apache Software Foundation. All Rights Reserved.