Class StandardCJKFont
- java.lang.Object
-
- org.faceless.pdf2.PDFFont
-
- org.faceless.pdf2.StandardCJKFont
-
- All Implemented Interfaces:
java.lang.Cloneable
public final class StandardCJKFont extends PDFFont
A subclass of PDFFont representing the "standard" Chinese, Japanese and Korean fonts which are supplied by default with Acrobat 5.0 or later, or with a supplementary "language pack" for earlier releases. It's safe to assume that some version of these characters will be available for most PDF viewing applications (although see below for details). The following fonts are available:
- STSong-Ling: Simplified Chinese font with variable-width strokes
- MHei-Medium: Traditional Chinese font with fixed-width strokes
- MSung-Light: Traditional Chinese font with variable-width strokes
- Heisei Kaku Gothic W5: Japanese font with fixed-width strokes
- Heisei Mincho W3: Japanese font with variable-width strokes
- HYS Myeongjo Medium: Korean font with variable-width strokes
- HY Gothic Medium: Korean font with fixed-width strokes
Simplified Chinese
Simplified Chinese is used on mainland China and in Singapore, and the only font to choose from isSTSONG
. Support for the range of glyphs covered in Unicode 3.0/ISO 10646-1:2000 requires at least Java 1.5, PDF Library 2.2.6 and Acrobat 6.0. Support for the Yi character set requires at least the PDF library 2.10.4 and Acrobat 8.0.Traditional Chinese
Traditional Chinese is used in Hong Kong and Taiwan, and the fonts to choose from areMHEI
andMSUNG
. Support for HKSCS:2001 requires at least Java 1.5, the PDF Library 2.2.6 and Acrobat 6.0. Support for HKSCS:2004 requires the PDF Library 2.10.4 and Acrobat 8.0.Japanese
The two Japanese fonts areHEISEIMIN
andHEISEIKAKUGO
. We'd recommend at least Acrobat 5.0 for display of Japanese text. To support JIS X 0213:2004 you'll need Acrobat 7.0 or later and the PDF Library 2.2.6.Korean
The two Korean fonts areHYGOTHIC
andHYSMYEONGJO
. Korean support has been largely static in Acrobat, and any reasonably recent version of the PDF library and Acrobat should support the full range of characters.- Since:
- 1.1
-
-
Field Summary
Fields Modifier and Type Field Description static int
BOLD
A "style" parameter to the constructor requesting a bold fontstatic int
HEISEIKAKUGO
Represents the Heisei Kaku Gothic W5 font, a Japanese font with fixed width strokesstatic int
HEISEIMIN
Represents the Heisei Mincho W3 font, a Japanese font with variable width strokesstatic int
HYGOTHIC
Represents the HY Gothic Medium font, a Korean font with fixed width strokesstatic int
HYSMYEONGJO
Represents the HYS Myeongjo Medium font, a Korean font with variable width strokesstatic int
ITALIC
A "style" parameter to the constructor requesting an italic fontstatic int
MHEI
Represents the MHei Medium font, a Traditional Chinese font with fixed width strokesstatic int
MSUNG
Represents the MSung Light font, a Traditional Chinese font with variable width strokesstatic int
REGULAR
A "style" parameter to the constructor requesting a regular font - ie. not bold or italic.static int
STSONG
Represents the ST Song Light font, a Simplified Chinese font with variable width strokes
-
Constructor Summary
Constructors Constructor Description StandardCJKFont(int font, int style)
Create a new CJK Font.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description float
getAscender()
Get the Ascender for the font (the maximum height above the baseline the font extends), as a proportion of the point size.float
getCapHeight()
Get the Cap-Height of the font - normally the height of an upper-case 'O' characterfloat
getDefaultLeading()
Get the default leading for this font - the preferred distance between two successive baselines of text.java.util.BitSet
getDefinedCodepoints()
Return read-only BitSet containing all the Unicode codepoints defined in this fontfloat
getDescender()
Get the Descender for the font (the maximum height below the baseline the font extends), as a proportion of the point size.float
getStrikeoutPosition()
Get the strikeout position, as a proportion of the font size.float
getStrikeoutThickness()
Get the strikeout thickness, as a proportion of the font size.float
getSubscriptPosition()
Get the recommended position of a sub-script version of this font, as a proportion of the sub-scripted font size.float
getSubscriptSize()
Get the recommended size of a super/sub script version of this font, as a proportion of the normal font size.float
getSuperscriptPosition()
Get the recommended position of a super-script version of this font, as a proportion of the sub-scripted font size.int
getType()
Return the type of the font, as supplied to the constructorfloat
getUnderlinePosition()
Get the underline position, as a proportion of the font size.float
getUnderlineThickness()
Get the underline thickness, as a proportion of the font size.float
getXHeight()
Get the X-Height of the font - normally the height of a lower-case 'x' character.boolean
isBold()
Return true if the font is boldboolean
isItalic()
Return true if the font is italicboolean
isMonospace()
Return true if every character has the same width (like Courier), false if every character is potentially a different width (like Times-Roman)boolean
isSerif()
Return true if the font is serifvoid
putLiteral(java.lang.String key, java.lang.String tokens)
Put a literal token sequnce.java.lang.String
toString()
PDFFont
versionBold()
Return a bold version of the current font, if available.PDFFont
versionItalic()
Return an italic version of the current font, if available.PDFFont
versionNonBold()
Return a non-bold version of the current font, if available.PDFFont
versionNonItalic()
Return a non-italic version of the current font, if available.PDFFont
versionRegular()
Return a non-bold, non-italic version of the current font, if available.-
Methods inherited from class org.faceless.pdf2.PDFFont
clone, getAvailableFeatures, getBaseName, getBottom, getCharWidth, getCharWidth, getFeature, getKerning, getKerning, getLeft, getMetaData, getRight, getTop, getXMP, hasFeature, isDefined, isDefined, isEmbedded, isHorizontal, isSubset, setFeature, setFeature, setMetaData
-
-
-
-
Field Detail
-
STSONG
public static final int STSONG
Represents the ST Song Light font, a Simplified Chinese font with variable width strokes- See Also:
- Constant Field Values
-
MSUNG
public static final int MSUNG
Represents the MSung Light font, a Traditional Chinese font with variable width strokes- See Also:
- Constant Field Values
-
MHEI
public static final int MHEI
Represents the MHei Medium font, a Traditional Chinese font with fixed width strokes- See Also:
- Constant Field Values
-
HEISEIMIN
public static final int HEISEIMIN
Represents the Heisei Mincho W3 font, a Japanese font with variable width strokes- See Also:
- Constant Field Values
-
HEISEIKAKUGO
public static final int HEISEIKAKUGO
Represents the Heisei Kaku Gothic W5 font, a Japanese font with fixed width strokes- See Also:
- Constant Field Values
-
HYGOTHIC
public static final int HYGOTHIC
Represents the HY Gothic Medium font, a Korean font with fixed width strokes- See Also:
- Constant Field Values
-
HYSMYEONGJO
public static final int HYSMYEONGJO
Represents the HYS Myeongjo Medium font, a Korean font with variable width strokes- See Also:
- Constant Field Values
-
REGULAR
public static final int REGULAR
A "style" parameter to the constructor requesting a regular font - ie. not bold or italic.- See Also:
- Constant Field Values
-
BOLD
public static final int BOLD
A "style" parameter to the constructor requesting a bold font- See Also:
- Constant Field Values
-
ITALIC
public static final int ITALIC
A "style" parameter to the constructor requesting an italic font- See Also:
- Constant Field Values
-
-
Constructor Detail
-
StandardCJKFont
public StandardCJKFont(int font, int style)
Create a new CJK Font.- Parameters:
font
- The font to create. Can be one ofSTSONG
,MHEI
,MSUNG
,HEISEIMIN
,HEISEIKAKUGO
,HYGOTHIC
, orHYSMYEONGJO
.style
- a logical-OR of any ofBOLD
,ITALIC
orREGULAR
-
-
Method Detail
-
getType
public int getType()
Return the type of the font, as supplied to the constructor- Since:
- 2.20.3
-
getDefaultLeading
public float getDefaultLeading()
Description copied from class:PDFFont
Get the default leading for this font - the preferred distance between two successive baselines of text. Values are a ratio of the font size, and are typically between 1 and 1.3
Note that the values of the different spacing-between-lines methods have changed - in versions 1.0.4 and earlier this routine normally returned 1 and the spacing was set by the
PDFStyle.setTextLineSpacing(float)
method. Since 1.1, the values for these two methods are effectively reversed. See the relevant method comments in thePDFStyle
class for more information.- Specified by:
getDefaultLeading
in classPDFFont
-
getDescender
public float getDescender()
Description copied from class:PDFFont
Get the Descender for the font (the maximum height below the baseline the font extends), as a proportion of the point size. The returned value is usually negative. The exact source of this value is undefined except for OpenTypeFonts, where it comes from the "hhea.descender" value normally, or the from "OS2.sTypoDescender" flag if the USE_TYPO_METRICS flag is set.- Specified by:
getDescender
in classPDFFont
-
getAscender
public float getAscender()
Description copied from class:PDFFont
Get the Ascender for the font (the maximum height above the baseline the font extends), as a proportion of the point size. The exact source of of this value is undefined except for OpenTypeFonts, where it comes from the "hhea.ascender" value normally, or the from "OS2.sTypoAscender" flag if the USE_TYPO_METRICS flag is set.- Specified by:
getAscender
in classPDFFont
-
getXHeight
public float getXHeight()
Description copied from class:PDFFont
Get the X-Height of the font - normally the height of a lower-case 'x' character.- Specified by:
getXHeight
in classPDFFont
-
getCapHeight
public float getCapHeight()
Description copied from class:PDFFont
Get the Cap-Height of the font - normally the height of an upper-case 'O' character- Specified by:
getCapHeight
in classPDFFont
-
getUnderlinePosition
public float getUnderlinePosition()
Description copied from class:PDFFont
Get the underline position, as a proportion of the font size. Like thegetDescender()
method, the returned value is almost always negative, indicating below the baseline. The distance is from the baseline to the center of the underline.- Specified by:
getUnderlinePosition
in classPDFFont
-
getUnderlineThickness
public float getUnderlineThickness()
Description copied from class:PDFFont
Get the underline thickness, as a proportion of the font size.- Specified by:
getUnderlineThickness
in classPDFFont
-
getStrikeoutPosition
public float getStrikeoutPosition()
Description copied from class:PDFFont
Get the strikeout position, as a proportion of the font size. The value is the distance from the baseline to the center of the strikeout, and shuold be positive.- Specified by:
getStrikeoutPosition
in classPDFFont
-
getStrikeoutThickness
public float getStrikeoutThickness()
Description copied from class:PDFFont
Get the strikeout thickness, as a proportion of the font size.- Specified by:
getStrikeoutThickness
in classPDFFont
-
getSuperscriptPosition
public float getSuperscriptPosition()
Description copied from class:PDFFont
Get the recommended position of a super-script version of this font, as a proportion of the sub-scripted font size. Value is always positive.
For some fonts (like CJK or barcode fonts) where there is no concept of super or subscript, this value is entirely arbitrary.
- Specified by:
getSuperscriptPosition
in classPDFFont
-
getSubscriptPosition
public float getSubscriptPosition()
Description copied from class:PDFFont
Get the recommended position of a sub-script version of this font, as a proportion of the sub-scripted font size. Value is almost always zero or negative.
For some fonts (like CJK or barcode fonts) where there is no concept of super or subscript, this value is entirely arbitrary.
- Specified by:
getSubscriptPosition
in classPDFFont
-
getSubscriptSize
public float getSubscriptSize()
Description copied from class:PDFFont
Get the recommended size of a super/sub script version of this font, as a proportion of the normal font size. Typical value is around 0.6.
For some fonts (like CJK or barcode fonts) where there is no concept of super or subscript, this value is entirely arbitrary.
- Specified by:
getSubscriptSize
in classPDFFont
-
isMonospace
public boolean isMonospace()
Description copied from class:PDFFont
Return true if every character has the same width (like Courier), false if every character is potentially a different width (like Times-Roman)- Specified by:
isMonospace
in classPDFFont
-
getDefinedCodepoints
public java.util.BitSet getDefinedCodepoints()
Description copied from class:PDFFont
Return read-only BitSet containing all the Unicode codepoints defined in this font- Specified by:
getDefinedCodepoints
in classPDFFont
-
isItalic
public boolean isItalic()
Description copied from class:PDFFont
Return true if the font is italic
-
isBold
public boolean isBold()
Description copied from class:PDFFont
Return true if the font is bold
-
isSerif
public boolean isSerif()
Description copied from class:PDFFont
Return true if the font is serif
-
versionBold
public PDFFont versionBold()
Description copied from class:PDFFont
Return a bold version of the current font, if available. By default this just returns this font.- Overrides:
versionBold
in classPDFFont
-
versionItalic
public PDFFont versionItalic()
Description copied from class:PDFFont
Return an italic version of the current font, if available. By default this just returns this font.- Overrides:
versionItalic
in classPDFFont
-
versionNonItalic
public PDFFont versionNonItalic()
Description copied from class:PDFFont
Return a non-italic version of the current font, if available. By default this just returns this font.- Overrides:
versionNonItalic
in classPDFFont
-
versionNonBold
public PDFFont versionNonBold()
Description copied from class:PDFFont
Return a non-bold version of the current font, if available. By default this just returns this font.- Overrides:
versionNonBold
in classPDFFont
-
versionRegular
public PDFFont versionRegular()
Description copied from class:PDFFont
Return a non-bold, non-italic version of the current font, if available. By default this just returns this font.- Overrides:
versionRegular
in classPDFFont
-
toString
public java.lang.String toString()
-
putLiteral
public void putLiteral(java.lang.String key, java.lang.String tokens)
Put a literal token sequnce. For debugging- Parameters:
key
- the keytokens
- the token sequence, eg "true" or "/foo" or "[/Foo/Bar]". No refs, just direct objects.
-
-