org.faceless.pdf2
Class StandardCJKFont

java.lang.Object
  extended byorg.faceless.pdf2.PDFObject
      extended byorg.faceless.pdf2.PDFMap
          extended byorg.faceless.pdf2.PDFFont
              extended byorg.faceless.pdf2.StandardCJKFont
All Implemented Interfaces:
Cloneable

public final class StandardCJKFont
extends PDFFont

A subclass of PDFFont representing the "standard" Chinese, Japanese and Korean fonts which are available as part of the Acrobat Reader for those countries, or as optional "language packs" for other locales. Without the language pack installed, Acrobat will throw an error message when trying to display a page containing one of these fonts. They can be can be downloaded from http://www.adobe.com/products/acrobat/acrrasianfontpack.html if they were not installed with Acrobat.

The following fonts are available:

Each of these fonts may be used as is, or in italic or bold.

Versions of Acrobat 5.0 used UCS2 encoding, and so was limited to displaying only characters from U+0000 to U+FFFF. Acrobat 6.0 added support for UTF16, which is required to display characters outside this range. For reasons far too complicated to go into here, UTF16 encoding is also required to display some additional characters outside this range - specifically characters added in the HKSCS-2001 and JISX0213:2004 ranges. So, to sum up:

Although Java 1.5 is the first version to support Unicode characters above U+FFFF, you can still get by quite happily with Java 1.4 by using the appropriate surrogates from the U+D800 to U+DFFF range (which is what Java 1.5 does anyway). Since version 2.2.6 the library is aware of Unicode 4.0 characters and handles them correctly regardless of which version of Java you're running.

Since:
1.1

Field Summary
static int BOLD
          A "style" parameter to the constructor requesting a bold font
static int HEISEIKAKUGO
          Represents the Heisei Kaku Gothic W5 font, a Japanese font with fixed width strokes
static int HEISEIMIN
          Represents the Heisei Mincho W3 font, a Japanese font with variable width strokes
static int HYGOTHIC
          Represents the HY Gothic Medium font, a Korean font with fixed width strokes
static int HYSMYEONGJO
          Represents the HYS Myeongjo Medium font, a Korean font with variable width strokes
static int ITALIC
          A "style" parameter to the constructor requesting an italic font
static int MHEI
          Represents the MHei Medium font, a Traditional Chinese font with fixed width strokes
static int MSUNG
          Represents the MSung Light font, a Traditional Chinese font with variable width strokes
static 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
StandardCJKFont(int font, int style)
          Create a new CJK Font.
 
Method Summary
 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 getDefaultLeading()
           Get the default leading for this font - the preferred distance between two successive baselines of text.
 float getDescender()
          Get the Descender for the font (the maximum height below the baseline the font extends), as a proportion of the point size.
 int getKerning(int c1, int c2)
          Get the horizontal character-to-character (or "pair-wise") kerning in this font for the specified characters, in millipoints.
 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.
 float 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.
 boolean isMonospace()
          Return true if every character has the same width (like Courier), false if every character is potentially a different width (like Times-Roman)
 
Methods inherited from class org.faceless.pdf2.PDFFont
equals, getBaseName, getBottom, getCharWidth, getCharWidth, getKerning, getLeft, getRight, getTop, isDefined, isDefined, isHorizontal, ligaturize, ligaturize, requote, requote, toString
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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 of STSONG, MHEI, MSUNG, HEISEIMIN, HEISEIKAKUGO, HYGOTHIC, or HYSMYEONGJO.
style - a logical-OR of any of BOLD, ITALIC or REGULAR
Method Detail

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 the PDFStyle class for more information.

Specified by:
getDefaultLeading in class PDFFont

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.

Specified by:
getDescender in class PDFFont

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.

Specified by:
getAscender in class PDFFont

getUnderlinePosition

public float getUnderlinePosition()
Description copied from class: PDFFont
Get the underline position, as a proportion of the font size. Like the getDescender() method, the returned value is almost always negative, indicating below the baseline.

Specified by:
getUnderlinePosition in class PDFFont

getUnderlineThickness

public float getUnderlineThickness()
Description copied from class: PDFFont
Get the underline thickness, as a proportion of the font size.

Specified by:
getUnderlineThickness in class PDFFont

getStrikeoutPosition

public float getStrikeoutPosition()
Description copied from class: PDFFont
Get the strikeout position, as a proportion of the font size.

Specified by:
getStrikeoutPosition in class PDFFont

getStrikeoutThickness

public float getStrikeoutThickness()
Description copied from class: PDFFont
Get the strikeout thickness, as a proportion of the font size.

Specified by:
getStrikeoutThickness in class PDFFont

getKerning

public int getKerning(int c1,
                      int c2)
Description copied from class: PDFFont
Get the horizontal character-to-character (or "pair-wise") kerning in this font for the specified characters, in millipoints. This method is identical to PDFFont.getKerning(char,char) but takes ints, to handle the new Unicode 4.0 characters defined in Java 1.5

Specified by:
getKerning in class PDFFont
Parameters:
c1 - a Unicode codepoint between U+0000 and U+10FFFD
c2 - a Unicode codepoint between U+0000 and U+10FFFD

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 class PDFFont

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 class PDFFont

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 class PDFFont

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 class PDFFont


Copyright © 2001-2004 Big Faceless Organization