Package com.adobe.fontengine.font.cff
Class CIDKeyedFont
- java.lang.Object
-
- com.adobe.fontengine.font.FontData
-
- com.adobe.fontengine.font.cff.CFFFont
-
- com.adobe.fontengine.font.cff.CIDKeyedFont
-
public final class CIDKeyedFont extends CFFFont
Represents a CID-keyed font.
-
-
Constructor Summary
Constructors Constructor Description CIDKeyedFont(java.lang.String name, Dict topDict, CharStrings charStrings, int numGlyphs, Dict ciddict, Dict privateDict)CIDKeyedFont(java.lang.String name, Dict topDict, CharStrings charStrings, int numGlyphs, Dict cidDict, Dict privateDict, CharStrings lSubrs, CharStrings gSubrs)This constructor is called from Glyf.subsetAndStreamForCFF and is by the new TT->CFF-IdentityCID code for DF4.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcid2gid(int cid)SubsetcreateSubset()Create a subset for this font.intgetCIDCount()LineMetricsgetCoolTypeLineMetrics()Emulates the CoolType API CTFontDict:GetHorizontalMetrics CoolType API.PermissiongetEmbeddingPermission(boolean wasEmbedded)intgetFirstChar()RectgetFontBBox()MatrixgetFontMatrix()MatrixgetFontMatrix(int component)Allows recover of concatenated font matrix from a CID component.intgetGlyphCid(int gid)Return the CID of the glyphgid.intgetGlyphForChar(int usv)Return the glyph to use to display a character.java.lang.StringgetGlyphName(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.intgetLastChar()intgetNumGlyphs()Return the number of glyphs in this font.voidgetOutline(int gid, Type2OutlineParser parser, OutlineConsumer consumer)Return the outline of glyphgid.PDFFontDescriptiongetPDFFontDescription(Font font)RectgetRawFontBBox()ROSgetROS()Get the ROS associated with this font.doublegetStemVForGlyph(int gid)XDCFontDescriptiongetXDCFontDescription(Font font)voidstream(java.io.OutputStream out, java.lang.Integer fsType)voidsubsetAndStream(Subset subset, java.io.OutputStream out, boolean preserveROS, java.lang.Integer fsType)A version of subsetAndStream that can take an fsType value to be added to the fonts postscript string.voidsubsetAndStream(Subset subset, java.io.OutputStream out, boolean preserveROS, java.lang.Integer fsType, boolean enableSubrizer)voidsubsetAndStream(Subset subset, java.io.OutputStream out, boolean preserveROS, java.lang.Integer fsType, boolean enableSubrizer, boolean rebuildCharstrings)Added yet another boolean to make this code serve on the new TT->CFF-IdentityCID path for DF4.-
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, subsetAndStream
-
Methods inherited from class com.adobe.fontengine.font.FontData
getContainerFingerprint, getCoolTypeCapHeight, getCoolTypeFontBBox, getCoolTypeGlyphBBox, getCoolTypeGlyphForChar, getCoolTypeUnitsPerEm, getCoolTypeXHeight, getCSS20FontDescription, getLineMetrics, getPointSizeRange, getPreferredCSS20FontDescription, getScaler, hasCoolTypeProportionalRoman, isSymbolic
-
-
-
-
Constructor Detail
-
CIDKeyedFont
public CIDKeyedFont(java.lang.String name, Dict topDict, CharStrings charStrings, int numGlyphs, Dict ciddict, Dict privateDict) throws InvalidFontException, UnsupportedFontException
-
CIDKeyedFont
public CIDKeyedFont(java.lang.String name, Dict topDict, CharStrings charStrings, int numGlyphs, Dict cidDict, Dict privateDict, CharStrings lSubrs, CharStrings gSubrs) throws InvalidFontException, UnsupportedFontExceptionThis constructor is called from Glyf.subsetAndStreamForCFF and is by the new TT->CFF-IdentityCID code for DF4.
-
-
Method Detail
-
createSubset
public Subset createSubset() throws InvalidFontException, UnsupportedFontException
Create a subset for this font.- Specified by:
createSubsetin classFontData- Throws:
InvalidFontExceptionUnsupportedFontException
-
getNumGlyphs
public int getNumGlyphs()
Description copied from class:FontDataReturn the number of glyphs in this font.- Specified by:
getNumGlyphsin classFontData
-
getGlyphName
public java.lang.String getGlyphName(int gid)
Return the name of glyphgid. Since glyphs in CID-keyed font don't have names, we return null.- Specified by:
getGlyphNamein classCFFFont
-
getROS
public ROS getROS()
Description copied from class:CFFFontGet the ROS associated with this font. If the font does not have an ROS, return null.
-
getCIDCount
public int getCIDCount()
-
getGlyphCid
public int getGlyphCid(int gid) throws InvalidFontException, UnsupportedFontExceptionReturn the CID of the glyphgid.- Specified by:
getGlyphCidin classCFFFont- Returns:
- the CID in the ROS associated with the font.
- Throws:
InvalidFontExceptionUnsupportedFontException
-
cid2gid
public int cid2gid(int cid) throws InvalidFontException, UnsupportedFontException
-
getGlyphOutline
public void getGlyphOutline(int gid, OutlineConsumer consumer) throws InvalidFontException, UnsupportedFontExceptionGet 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, UnsupportedFontExceptionReturn the outline of glyphgid.- Specified by:
getOutlinein classCFFFont- Throws:
InvalidFontExceptionUnsupportedFontException
-
getStemVForGlyph
public double getStemVForGlyph(int gid) throws InvalidFontException- Specified by:
getStemVForGlyphin classCFFFont- Throws:
InvalidFontException
-
getFontMatrix
public Matrix getFontMatrix()
- Specified by:
getFontMatrixin classCFFFont
-
getFontMatrix
public Matrix getFontMatrix(int component)
Allows recover of concatenated font matrix from a CID component.
-
getHorizontalAdvance
public double getHorizontalAdvance(int gid) throws InvalidFontException, UnsupportedFontExceptionGet the horizontal advance of a glyph. The returned value is in metric space.- Specified by:
getHorizontalAdvancein classCFFFont- Throws:
InvalidFontExceptionUnsupportedFontException
-
getRawFontBBox
public Rect getRawFontBBox()
-
getFontBBox
public Rect getFontBBox() throws InvalidFontException, UnsupportedFontException
- Specified by:
getFontBBoxin classFontData- Throws:
InvalidFontExceptionUnsupportedFontException
-
getCoolTypeLineMetrics
public LineMetrics getCoolTypeLineMetrics() throws UnsupportedFontException, InvalidFontException
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
public int getFirstChar() throws InvalidFontException, UnsupportedFontException
-
getLastChar
public int getLastChar() throws InvalidFontException, UnsupportedFontException
-
getGlyphForChar
public int getGlyphForChar(int usv) throws InvalidFontException, UnsupportedFontExceptionReturn 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
public Permission getEmbeddingPermission(boolean wasEmbedded)
- Specified by:
getEmbeddingPermissionin classFontData
-
subsetAndStream
public void subsetAndStream(Subset subset, java.io.OutputStream out, boolean preserveROS, java.lang.Integer fsType) throws InvalidFontException, UnsupportedFontException, java.io.IOException
Description copied from class:CFFFontA version of subsetAndStream that can take an fsType value to be added to the fonts postscript string.- Specified by:
subsetAndStreamin classCFFFontfsType- 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:
InvalidFontExceptionUnsupportedFontExceptionjava.io.IOException
-
subsetAndStream
public void subsetAndStream(Subset subset, java.io.OutputStream out, boolean preserveROS, java.lang.Integer fsType, boolean enableSubrizer) throws InvalidFontException, UnsupportedFontException, java.io.IOException
- Throws:
InvalidFontExceptionUnsupportedFontExceptionjava.io.IOException
-
subsetAndStream
public void subsetAndStream(Subset subset, java.io.OutputStream out, boolean preserveROS, java.lang.Integer fsType, boolean enableSubrizer, boolean rebuildCharstrings) throws InvalidFontException, UnsupportedFontException, java.io.IOException
Added yet another boolean to make this code serve on the new TT->CFF-IdentityCID path for DF4. TODO: The addition of the "rebuildCharstrings" boolean makes this code too ugly and complicated to be left like this. It needs to be re-worked, somehow.- Throws:
InvalidFontExceptionUnsupportedFontExceptionjava.io.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
-
stream
public void stream(java.io.OutputStream out, java.lang.Integer fsType) throws InvalidFontException, UnsupportedFontException, java.io.IOException- Specified by:
streamin classCFFFont- Throws:
InvalidFontExceptionUnsupportedFontExceptionjava.io.IOException
-
-