Package com.adobe.fontengine.font.cff
Class NameKeyedFont
java.lang.Object
com.adobe.fontengine.font.FontData
com.adobe.fontengine.font.cff.CFFFont
com.adobe.fontengine.font.cff.NameKeyedFont
Represents a name-keyed font.
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionNameKeyedFont(com.adobe.fontengine.font.cff.StringIndex stringIndex, CharStrings globalSubrs, String name, Dict topDict, com.adobe.fontengine.font.cff.CFFByteArray data, byte[] digest) Construct aNameKeyedFont.NameKeyedFont(String fontName, Dict topDict, CharStrings charStrings, Dict privateDict) Create a somewhat lobotimized name keyed font for subsetting a type1 font to CFFNameKeyedFont(String fontName, Dict topDict, CharStrings charStrings, Dict privateDict, CharStrings lSubrs, CharStrings gSubrs) Create an extended lobotimized name keyed font for subsetting a TrueType font to CFF with subroutines -
Method Summary
Modifier and TypeMethodDescriptionintcharCode2gid(int charCode) Create a subset for this font.Emulates the CoolType API CTFontDict:GetHorizontalMetrics CoolType API.getEmbeddingPermission(boolean wasEmbedded) intintgetGlyphCid(int glyphID) Get the CID associated with glyphglyphID.intgetGlyphForChar(int usv) Return the glyph to use to display a character.getGlyphName(int gid) Return the name of glyphgid.voidgetGlyphOutline(int gid, OutlineConsumer consumer) Get the outline of glyphgid.doublegetHorizontalAdvance(int gid) Get the horizontal advance of a glyph.intintReturn the number of glyphs in this font.voidgetOutline(int gid, Type2OutlineParser parser, OutlineConsumer consumer) Get the outline of glyphgid, using a specified parser.getPDFFontDescription(Font font) getROS()Get the ROS associated with this font.doublegetStemVForGlyph(int gid) getXDCFontDescription(Font font) intglyphName2gid(String glyphName) voidstream(OutputStream out, Integer fsType) voidstream(OutputStream out, Integer fsType, NameKeyedFont.GlyphNameFetcher fetcher) voidsubsetAndStream(Subset subset, OutputStream out, boolean preserveROS, Integer fsType) Subset and stream this font for PDF use.voidsubsetAndStream(Subset subset, OutputStream out, boolean preserveROS, Integer fsType, boolean enableSubrizer) Added new subsetAndStream method as part of changes to force DF4 output to be Identity-CID always.voidsubsetAndStream(Subset subset, OutputStream out, Integer fsType, boolean rebuildCharstrings, NameKeyedFont.GlyphNameFetcher fetcher) Create a subset name-keyed cff based on the given parametersvoidsubsetAndStream(Subset subset, OutputStream out, Integer fsType, boolean rebuildCharstrings, NameKeyedFont.GlyphNameFetcher fetcher, boolean enableSubrizer) Methods inherited from class com.adobe.fontengine.font.cff.CFFFont
getCacheSupportInfo, getCoolTypeIcfBox, getCoolTypeIdeoEmBox, getCoolTypeProportionalRomanFromFontProperties, getCoolTypeScript, getCoolTypeUnderlineMetrics, getCoolTypeUnderlineMetrics, getCSSFamilyNames, getCSSStretchValue, getCSSWeight, getFXGFontDescription, getGlyphBBox, getName, getPlatformFontDescription, getPostscriptFontDescription, getPreferredCSSFamilyName, getScaler, getSelectionDescription, getSWFFont4Description, getSWFFontDescription, getUnitsPerEmX, getUnitsPerEmY, isCSSStyleItalic, isCSSStyleNormal, isCSSStyleOblique, isCSSVariantNormal, isCSSVariantSmallCaps, isFixedPitch, subsetAndStreamMethods inherited from class com.adobe.fontengine.font.FontData
getContainerFingerprint, getCoolTypeCapHeight, getCoolTypeFontBBox, getCoolTypeGlyphBBox, getCoolTypeGlyphForChar, getCoolTypeUnitsPerEm, getCoolTypeXHeight, getCSS20FontDescription, getLineMetrics, getPointSizeRange, getPreferredCSS20FontDescription, getScaler, hasCoolTypeProportionalRoman, isSymbolic
-
Constructor Details
-
NameKeyedFont
public NameKeyedFont(com.adobe.fontengine.font.cff.StringIndex stringIndex, CharStrings globalSubrs, String name, Dict topDict, com.adobe.fontengine.font.cff.CFFByteArray data, byte[] digest) throws IOException, InvalidFontException, UnsupportedFontException Construct aNameKeyedFont.- Parameters:
stringIndex- the StringIndex for this fontglobalSubrs- the global subroutines for this fontname- the name of this fonttopDict- the topDictof this font.data- the underlying bytes from which the structures pointed by the top dict will be parseddigest- the digest for the container of this font- Throws:
IOExceptionInvalidFontExceptionUnsupportedFontException
-
NameKeyedFont
public NameKeyedFont(String fontName, Dict topDict, CharStrings charStrings, Dict privateDict) throws InvalidFontException, UnsupportedFontException Create a somewhat lobotimized name keyed font for subsetting a type1 font to CFF -
NameKeyedFont
public NameKeyedFont(String fontName, Dict topDict, CharStrings charStrings, Dict privateDict, CharStrings lSubrs, CharStrings gSubrs) throws InvalidFontException, UnsupportedFontException Create an extended lobotimized name keyed font for subsetting a TrueType font to CFF with subroutines
-
-
Method Details
-
getNumGlyphs
public int getNumGlyphs()Description copied from class:FontDataReturn the number of glyphs in this font.- Specified by:
getNumGlyphsin classFontData
-
glyphName2gid
-
charCode2gid
-
getGlyphName
Return the name of glyphgid.- Specified by:
getGlyphNamein classCFFFont- Throws:
InvalidFontExceptionUnsupportedFontException
-
getROS
Description copied from class:CFFFontGet the ROS associated with this font. If the font does not have an ROS, return null. -
getGlyphCid
public int getGlyphCid(int glyphID) Description copied from class:CFFFontGet the CID associated with glyphglyphID. Returns -1 if getROS() returns null.- Specified by:
getGlyphCidin classCFFFont- Returns:
- the CID in the ROS associated with the font.
-
getGlyphOutline
public void getGlyphOutline(int gid, OutlineConsumer consumer) throws InvalidFontException, UnsupportedFontException Get the outline of glyphgid.- Specified by:
getGlyphOutlinein classCFFFont- Parameters:
gid- the glyph id of the glyphconsumer- the OutlineConsumer to receive the outline- Throws:
InvalidFontExceptionUnsupportedFontException
-
getOutline
public void getOutline(int gid, Type2OutlineParser parser, OutlineConsumer consumer) throws InvalidFontException, UnsupportedFontException Get the outline of glyphgid, using a specified parser.- Specified by:
getOutlinein classCFFFont- Parameters:
gid- the glyph id of the glyphparser- the Type2OutlineParser parser to useconsumer- the OutlineConsumer to receive the outline- Throws:
InvalidFontExceptionUnsupportedFontException
-
getStemVForGlyph
public double getStemVForGlyph(int gid) - Specified by:
getStemVForGlyphin classCFFFont
-
getHorizontalAdvance
Description copied from class:FontDataGet the horizontal advance of a glyph. The returned value is in metric space.- Specified by:
getHorizontalAdvancein classCFFFont- Throws:
InvalidFontExceptionUnsupportedFontException
-
getFontMatrix
- Specified by:
getFontMatrixin classCFFFont
-
getFontBBox
- Specified by:
getFontBBoxin classFontData- Throws:
InvalidFontExceptionUnsupportedFontException
-
getCoolTypeRawFontBBox
-
getCoolTypeLineMetrics
Emulates the CoolType API CTFontDict:GetHorizontalMetrics CoolType API.The metrics are expressed in the design space of the font, i.e. they need to be converted through the metrics matrix.
This methods never returns null.
See also the
FontData.getLineMetrics()method.- Specified by:
getCoolTypeLineMetricsin classFontData- Throws:
UnsupportedFontExceptionInvalidFontException
-
getFirstChar
-
getLastChar
-
getGlyphForChar
Return the glyph to use to display a character. Depending on the layout technology of the font, the returned gid may be further processed.- Specified by:
getGlyphForCharin classCFFFont- Parameters:
usv- the Unicode scalar value of the character; (by definition, surrogate code points are not Unicode scalar values).- Returns:
- the gid of the glyph to use
- Throws:
InvalidFontExceptionUnsupportedFontException
-
getEmbeddingPermission
- Specified by:
getEmbeddingPermissionin classFontData
-
subsetAndStream
public void subsetAndStream(Subset subset, OutputStream out, boolean preserveROS, Integer fsType) throws InvalidFontException, UnsupportedFontException, IOException Subset and stream this font for PDF use. The stream is a CID-keyed CFF stream.- Specified by:
subsetAndStreamin classCFFFont- Parameters:
out- the OutputStream to which the bytes are streamedfsType- if non-null an integer as described in technote 5147 http://partners.adobe.com/public/developer/en/acrobat/sdk/FontPolicies.pdf "Font Embedding Guidelines for Adobe Third-party Developers".- Throws:
InvalidFontExceptionUnsupportedFontExceptionIOException
-
subsetAndStream
public void subsetAndStream(Subset subset, OutputStream out, boolean preserveROS, Integer fsType, boolean enableSubrizer) throws InvalidFontException, UnsupportedFontException, IOException Added new subsetAndStream method as part of changes to force DF4 output to be Identity-CID always. -
stream
public void stream(OutputStream out, Integer fsType) throws InvalidFontException, UnsupportedFontException, IOException - Specified by:
streamin classCFFFont- Throws:
InvalidFontExceptionUnsupportedFontExceptionIOException
-
stream
public void stream(OutputStream out, Integer fsType, NameKeyedFont.GlyphNameFetcher fetcher) throws InvalidFontException, UnsupportedFontException, IOException -
subsetAndStream
public void subsetAndStream(Subset subset, OutputStream out, Integer fsType, boolean rebuildCharstrings, NameKeyedFont.GlyphNameFetcher fetcher) throws InvalidFontException, UnsupportedFontException, IOException Create a subset name-keyed cff based on the given parameters- Parameters:
subset- The set of glyphs to include in the subsetout- The OutputStream to which we will write the new fontfsType- The fsType to include in the new fontrebuildCharstrings- Tells if the charstrings in the current font already take into account the Subset. If they do, then we don't need to recreate the charstrings. Otherwise, we do.fetcher- Provides a way to get from gid to glyphName for cases where there is no charset (for example, because this NameKeyedFont is a temporary font converted from Type1). Can be null if this's charset and string index are valid.- Throws:
InvalidFontExceptionUnsupportedFontExceptionIOException
-
subsetAndStream
public void subsetAndStream(Subset subset, OutputStream out, Integer fsType, boolean rebuildCharstrings, NameKeyedFont.GlyphNameFetcher fetcher, boolean enableSubrizer) throws InvalidFontException, UnsupportedFontException, IOException -
getPDFFontDescription
public PDFFontDescription getPDFFontDescription(Font font) throws UnsupportedFontException, InvalidFontException - Specified by:
getPDFFontDescriptionin classFontData- Throws:
UnsupportedFontExceptionInvalidFontException
-
getXDCFontDescription
public XDCFontDescription getXDCFontDescription(Font font) throws UnsupportedFontException, InvalidFontException - Specified by:
getXDCFontDescriptionin classFontData- Throws:
UnsupportedFontExceptionInvalidFontException
-
createSubset
Create a subset for this font.- Specified by:
createSubsetin classFontData- Throws:
InvalidFontExceptionUnsupportedFontException
-