public class DocumentFont extends BaseFont
BaseFont.StreamFont
Modifier and Type | Field and Description |
---|---|
private float |
Ascender |
private float |
CapHeight |
private static java.lang.String[] |
cjkEncs |
private static java.lang.String[] |
cjkEncs2 |
private BaseFont |
cjkMirror |
private static java.lang.String[] |
cjkNames |
private static java.lang.String[] |
cjkNames2 |
private float |
Descender |
private PdfDictionary |
font |
private java.lang.String |
fontName |
private boolean |
isType0 |
private float |
ItalicAngle |
private float |
llx |
private float |
lly |
private java.util.HashMap |
metrics |
private PRIndirectReference |
refFont |
private static int[] |
stdEnc |
private IntHashtable |
uni2byte |
private float |
urx |
private float |
ury |
ASCENT, AWT_ASCENT, AWT_DESCENT, AWT_LEADING, AWT_MAXADVANCE, BBOXLLX, BBOXLLY, BBOXURX, BBOXURY, BuiltinFonts14, CACHED, CAPHEIGHT, CHAR_RANGE_ARABIC, CHAR_RANGE_CYRILLIC, CHAR_RANGE_HEBREW, CHAR_RANGE_LATIN, charBBoxes, CID_NEWLINE, COURIER, COURIER_BOLD, COURIER_BOLDOBLIQUE, COURIER_OBLIQUE, CP1250, CP1252, CP1257, DESCENT, differences, directTextToByte, embedded, EMBEDDED, encoding, fastWinansi, FONT_TYPE_CJK, FONT_TYPE_DOCUMENT, FONT_TYPE_T1, FONT_TYPE_T3, FONT_TYPE_TT, FONT_TYPE_TTUNI, fontCache, fontSpecific, fontType, forceWidthsOutput, HELVETICA, HELVETICA_BOLD, HELVETICA_BOLDOBLIQUE, HELVETICA_OBLIQUE, IDENTITY_H, IDENTITY_V, ITALICANGLE, MACROMAN, NOT_CACHED, NOT_EMBEDDED, notdef, RESOURCE_PATH, subset, subsetRanges, SYMBOL, TIMES_BOLD, TIMES_BOLDITALIC, TIMES_ITALIC, TIMES_ROMAN, unicodeDifferences, widths, WINANSI, ZAPFDINGBATS
Constructor and Description |
---|
DocumentFont(PRIndirectReference refFont)
Creates a new instance of DocumentFont
|
Modifier and Type | Method and Description |
---|---|
boolean |
charExists(char c)
Checks if a character exists in this font.
|
(package private) byte[] |
convertToBytes(java.lang.String text)
Converts a
String to a byte array according
to the font's encoding. |
private java.lang.String |
decodeString(PdfString ps) |
private void |
doType1TT() |
private void |
fillEncoding(PdfName encoding) |
private void |
fillFontDesc(PdfDictionary fontDesc) |
private void |
fillMetrics(byte[] touni,
IntHashtable widths,
int dw) |
int[] |
getCharBBox(char c)
Gets the smallest box enclosing the character contours.
|
java.lang.String[][] |
getFamilyFontName()
Gets the family name of the font.
|
float |
getFontDescriptor(int key,
float fontSize)
Gets the font parameter identified by
key . |
java.lang.String[][] |
getFullFontName()
Gets the full name of the font.
|
(package private) PdfIndirectReference |
getIndirectReference() |
int |
getKerning(char char1,
char char2)
Gets the kerning between two Unicode chars.
|
java.lang.String |
getPostscriptFontName()
Gets the postscript font name.
|
protected int[] |
getRawCharBBox(int c,
java.lang.String name) |
(package private) int |
getRawWidth(int c,
java.lang.String name)
Gets the width from the font according to the Unicode char
c
or the name . |
int |
getWidth(java.lang.String text)
Gets the width of a
String in normalized 1000 units. |
boolean |
hasKernPairs()
Checks if the font has any kerning pairs.
|
private void |
processType0(PdfDictionary font) |
private IntHashtable |
readWidths(PdfArray ws) |
boolean |
setKerning(char char1,
char char2,
int kern)
Sets the kerning between two Unicode chars.
|
void |
setPostscriptFontName(java.lang.String name)
Sets the font name that will appear in the pdf font dictionary.
|
(package private) void |
writeFont(PdfWriter writer,
PdfIndirectReference ref,
java.lang.Object[] params)
Outputs to the writer the font dictionaries and streams.
|
addSubsetRange, correctArabicAdvance, createEncoding, createFont, createFont, createFont, createSubsetPrefix, enumerateTTCNames, enumerateTTCNames, getAllFontNames, getAscent, getAscentPoint, getBaseName, getCidCode, getCodePagesSupported, getDescent, getDescentPoint, getDifferences, getDocumentFonts, getDocumentFonts, getEncoding, getFontType, getFullFontName, getResourceStream, getResourceStream, getUnicodeDifferences, getUnicodeDifferences, getUnicodeEquivalent, getWidth, getWidthPoint, getWidthPoint, getWidthPointKerned, getWidths, isDirectTextToByte, isEmbedded, isFontSpecific, isForceWidthsOutput, isSubset, normalizeEncoding, setCharAdvance, setDirectTextToByte, setForceWidthsOutput, setSubset
private java.util.HashMap metrics
private java.lang.String fontName
private PRIndirectReference refFont
private PdfDictionary font
private IntHashtable uni2byte
private float Ascender
private float CapHeight
private float Descender
private float ItalicAngle
private float llx
private float lly
private float urx
private float ury
private boolean isType0
private BaseFont cjkMirror
private static java.lang.String[] cjkNames
private static java.lang.String[] cjkEncs
private static java.lang.String[] cjkNames2
private static java.lang.String[] cjkEncs2
private static final int[] stdEnc
DocumentFont(PRIndirectReference refFont)
private void processType0(PdfDictionary font)
private IntHashtable readWidths(PdfArray ws)
private java.lang.String decodeString(PdfString ps)
private void fillMetrics(byte[] touni, IntHashtable widths, int dw)
private void doType1TT()
private void fillFontDesc(PdfDictionary fontDesc)
private void fillEncoding(PdfName encoding)
public java.lang.String[][] getFamilyFontName()
getFamilyFontName
in class BaseFont
public float getFontDescriptor(int key, float fontSize)
key
. Valid values
for key
are ASCENT
, CAPHEIGHT
, DESCENT
,
ITALICANGLE
, BBOXLLX
, BBOXLLY
, BBOXURX
and BBOXURY
.getFontDescriptor
in class BaseFont
key
- the parameter to be extractedfontSize
- the font size in pointspublic java.lang.String[][] getFullFontName()
getFullFontName
in class BaseFont
public int getKerning(char char1, char char2)
getKerning
in class BaseFont
char1
- the first charchar2
- the second charpublic java.lang.String getPostscriptFontName()
getPostscriptFontName
in class BaseFont
int getRawWidth(int c, java.lang.String name)
c
or the name
. If the name
is null it's a symbolic font.getRawWidth
in class BaseFont
c
- the unicode charname
- the glyph namepublic boolean hasKernPairs()
hasKernPairs
in class BaseFont
true
if the font has any kerning pairsvoid writeFont(PdfWriter writer, PdfIndirectReference ref, java.lang.Object[] params) throws DocumentException, java.io.IOException
writeFont
in class BaseFont
writer
- the writer for this documentref
- the font indirect referenceparams
- several parameters that depend on the font typejava.io.IOException
- on errorDocumentException
- error in generating the objectpublic int getWidth(java.lang.String text)
BaseFont
String
in normalized 1000 units.byte[] convertToBytes(java.lang.String text)
BaseFont
String
to a byte array according
to the font's encoding.convertToBytes
in class BaseFont
text
- the String
to be convertedbyte
representing the conversion according to the font's encodingPdfIndirectReference getIndirectReference()
public boolean charExists(char c)
BaseFont
charExists
in class BaseFont
c
- the character to checktrue
if the character has a glyph,
false
otherwisepublic void setPostscriptFontName(java.lang.String name)
setPostscriptFontName
in class BaseFont
name
- the new font namepublic boolean setKerning(char char1, char char2, int kern)
BaseFont
setKerning
in class BaseFont
char1
- the first charchar2
- the second charkern
- the kerning to apply in normalized 1000 unitstrue
if the kerning was applied, false
otherwisepublic int[] getCharBBox(char c)
BaseFont
null
if the font has not the information or the character has no
contours, as in the case of the space, for example. Characters with no contours may
also return [0,0,0,0].getCharBBox
in class BaseFont
c
- the character to get the contour bounding box fromnull
protected int[] getRawCharBBox(int c, java.lang.String name)
getRawCharBBox
in class BaseFont