Foxit PDF SDK
foxit::common::Font类 参考
类 foxit::common::Font 继承关系图:
foxit::Base

Public 类型

enum  Charset {
  e_CharsetANSI = 0, e_CharsetDefault = 1, e_CharsetSymbol = 2, e_CharsetShift_JIS = 128,
  e_CharsetHangeul = 129, e_CharsetGB2312 = 134, e_CharsetChineseBig5 = 136, e_CharsetThai = 222,
  e_CharsetEastEurope = 238, e_CharsetRussian = 204, e_CharsetGreek = 161, e_CharsetTurkish = 162,
  e_CharsetHebrew = 177, e_CharsetArabic = 178, e_CharsetBaltic = 186
}
 字体字符集枚举。 更多...
 
enum  CIDCharset {
  e_CIDCharsetUnknown = 0, e_CIDCharsetGB1 = 1, e_CIDCharsetCNS1 = 2, e_CIDCharsetJAPAN1 = 3,
  e_CIDCharsetKOREA1 = 4, e_CIDCharsetUNICODE = 5
}
 CID字体字符集枚举。 更多...
 
enum  FontTypes { e_FontTypeType1 = 1, e_FontTypeTrueType = 2, e_FontTypeType3 = 3, e_FontTypeCIDFont = 4 }
 字体类型的枚举。 更多...
 
enum  StandardID {
  e_StdIDCourier = 0, e_StdIDCourierB = 1, e_StdIDCourierBI = 2, e_StdIDCourierI = 3,
  e_StdIDHelvetica = 4, e_StdIDHelveticaB = 5, e_StdIDHelveticaBI = 6, e_StdIDHelveticaI = 7,
  e_StdIDTimes = 8, e_StdIDTimesB = 9, e_StdIDTimesBI = 10, e_StdIDTimesI = 11,
  e_StdIDSymbol = 12, e_StdIDZapfDingbats = 13
}
 标准字体ID枚举。 更多...
 
enum  Styles {
  e_StyleFixedPitch = 0x0001, e_StyleSerif = 0x0002, e_StyleSymbolic = 0x0004, e_StyleScript = 0x0008,
  e_StyleNonSymbolic = 0x0020, e_StyleItalic = 0x0040, e_StyleAllCap = 0x10000, e_StylesSmallCap = 0x20000,
  e_StylesBold = 0x40000
}
 字体样式的枚举。 更多...
 

Public 成员函数

 Font (const wchar_t *name, uint32 styles, Charset charset, int weight)
 带有给定属性的构造函数。 更多...
 
 Font (StandardID font_id)
 通过标准字体ID的构造函数。 更多...
 
 Font (const char *font_file_path, int face_index, Charset charset)
 从字体文件的构造函数。 更多...
 
 Font (const wchar_t *font_file_path, int face_index, Charset charset)
 从字体文件的构造函数。 更多...
 
 Font (foxit::common::file::StreamCallback *stream)
 通过使用 foxit::common::file::StreamCallback 从字体流的构造函数。 更多...
 
 Font (const Font &other)
 使用另一个字体对象的构造函数。 更多...
 
 ~Font ()
 析构函数。
 
UInt32Array AddUnicodes (const pdf::PDFDoc &document, const UInt32Array &unicode_array)
 向当前嵌入字体添加Unicode字符。 更多...
 
Font Embed (pdf::PDFDoc document, bool is_add_all_unicodes=true)
 将当前字体嵌入到指定的PDF文档中。 更多...
 
int GetAscent () const
 获取上升值,以1/1000 em大小为单位(PDF单位)。 更多...
 
String GetBaseFontName (const pdf::PDFDoc &document)
 获取基础字体名称。 更多...
 
RectI GetCharBBox (uint32 unicode) const
 获取由Unicode指定的字符的边界框。 更多...
 
RectI GetCharBBox (foxit::uint32 unicode, const foxit::pdf::PDFDoc &document)
 获取PDF文档中由Unicode指定的字符的边界框。 更多...
 
float GetCharWidth (uint32 unicode) const
 获取由Unicode指定的字符的宽度(以1/1000 em大小为单位(PDF单位))。 更多...
 
float GetCharWidth (foxit::uint32 unicode, const foxit::pdf::PDFDoc &document)
 获取PDF文档中由Unicode指定的字符的宽度(以1/1000 em大小为单位,作为PDF单位)。 更多...
 
CIDCharset GetCIDCharset (const pdf::PDFDoc &document)
 获取CID字体字符集。 更多...
 
int GetDescent () const
 获取下降值,以1/1000 em大小为单位(PDF单位)。 更多...
 
String GetEncoding (const pdf::PDFDoc &document)
 获取当前字体编码。 更多...
 
String GetFamilyName ()
 检索字体族名称。 更多...
 
FontTypes GetFontType (const pdf::PDFDoc &document)
 获取字体类型。 更多...
 
WString GetName ()
 检索PostScript名称。 更多...
 
StandardID GetStandard14Font (const pdf::PDFDoc &document)
 获取标准字体ID。 更多...
 
foxit::uint32 GetStyles (const pdf::PDFDoc &document)
 获取字体样式。 更多...
 
bool IsBold () const
 判断当前字体是否为粗体。 更多...
 
bool IsCharSupported (foxit::uint32 unicode, const pdf::PDFDoc &document) const
 检查当前字体是否支持某字符。 更多...
 
bool IsEmbedded (const pdf::PDFDoc &document)
 判断当前字体是否嵌入在指定的PDF文档中。 更多...
 
bool IsEmpty () const
 检查当前对象是否为空。 更多...
 
bool IsItalic () const
 判断当前字体对象是否为斜体。 更多...
 
bool IsStandardFont (const pdf::PDFDoc &document)
 检查当前字体是否为标准字体。 更多...
 
bool IsSupportEmbedded (const pdf::PDFDoc &document)
 检查当前字体是否支持嵌入到指定的PDF文档中。 更多...
 
bool IsVertWriting (const pdf::PDFDoc &document)
 检查当前字体是否为垂直书写。 更多...
 
bool operator != (const Font &other) const
 不相等操作符。 更多...
 
Fontoperator= (const Font &other)
 赋值操作符。 更多...
 
bool operator== (const Font &other) const
 相等操作符。 更多...
 
bool SetEncoding (const pdf::PDFDoc &document, const char *value)
 设置当前字体编码。 更多...
 
- Public 成员函数 继承自 foxit::Base
FS_HANDLE Handle () const
 获取当前对象的句柄。 更多...
 

详细描述

在PDF文档中,字体用于在PDF页面中绘制文本。
此类表示在Foxit PDF SDK中使用的字体。此类为用户提供不同的构造函数来构造 新的字体对象,通过指定参数、标准字体ID或从字体文件路径。 字体对象也可以直接从PDF文档中的其他对象(如自由文本注释、 文本图形对象等)中检索。 此类还提供一些函数来获取字体的一些基本信息。

成员枚举类型说明

◆ Charset

字体字符集枚举。

此枚举的值应单独使用。

枚举值
e_CharsetANSI 

字体字符集:ANSI(美国、西欧)。

e_CharsetDefault 

字体字符集:系统默认,用于未知或映射目的。

e_CharsetSymbol 

字体字符集:标准符号。

e_CharsetShift_JIS 

字体字符集:日文(Shift-JIS)。

e_CharsetHangeul 

字体字符集:韩文(Wansung)。

e_CharsetGB2312 

字体字符集:简体中文。

e_CharsetChineseBig5 

字体字符集:繁体中文。

e_CharsetThai 

字体字符集:泰文。

e_CharsetEastEurope 

字体字符集:东欧。

e_CharsetRussian 

字体字符集:俄文。

e_CharsetGreek 

字体字符集:希腊文。

e_CharsetTurkish 

字体字符集:土耳其文。

e_CharsetHebrew 

字体字符集:希伯来文。

e_CharsetArabic 

字体字符集:阿拉伯文。

e_CharsetBaltic 

字体字符集:波罗的海文。

◆ CIDCharset

CID字体字符集枚举。

此枚举的值应单独使用。

枚举值
e_CIDCharsetUnknown 

CID字体字符集:未知。

e_CIDCharsetGB1 

CID字体字符集:Adobe-GB1。

e_CIDCharsetCNS1 

CID字体字符集:Adobe-CNS1。

e_CIDCharsetJAPAN1 

CID字体字符集:Adobe-Japan1。

e_CIDCharsetKOREA1 

CID字体字符集:Adobe-Korea1。

e_CIDCharsetUNICODE 

CID字体字符集:Unicode。

◆ FontTypes

字体类型的枚举。

此枚举的值可以单独使用。

枚举值
e_FontTypeType1 

字体类型:Type1。

e_FontTypeTrueType 

字体类型:TrueType。

e_FontTypeType3 

字体类型:Type3。

e_FontTypeCIDFont 

字体类型:CID 字体。

◆ StandardID

标准字体ID枚举。

此枚举的值应单独使用。

枚举值
e_StdIDCourier 

标准字体:Courier。

e_StdIDCourierB 

标准字体:Courier-Bold。

e_StdIDCourierBI 

标准字体:Courier-BoldOblique,粗斜体。

e_StdIDCourierI 

标准字体:Courier-Oblique,斜体。

e_StdIDHelvetica 

标准字体:Helvetica。

e_StdIDHelveticaB 

标准字体:Helvetica-Bold。

e_StdIDHelveticaBI 

标准字体:Helvetica-BoldOblique,粗斜体。

e_StdIDHelveticaI 

标准字体:Helvetica-Oblique,斜体。

e_StdIDTimes 

标准字体:Times-Roman。

e_StdIDTimesB 

标准字体:Times-Bold。

e_StdIDTimesBI 

标准字体:Times-BoldItalic。

e_StdIDTimesI 

标准字体:Times-Italic。

e_StdIDSymbol 

标准字体:Symbol。

e_StdIDZapfDingbats 

标准字体:ZapfDingbats。

◆ Styles

字体样式的枚举。

此枚举的值可以单独使用或组合使用。

枚举值
e_StyleFixedPitch 

字体样式:等宽字体。

e_StyleSerif 

字体样式:衬线字体。

e_StyleSymbolic 

字体样式:符号字体。

e_StyleScript 

字体样式:手写字体。

e_StyleNonSymbolic 

字体样式:非符号字体。

e_StyleItalic 

字体样式:斜体。

e_StyleAllCap 

字体样式:全大写。

e_StylesSmallCap 

字体样式:小型大写。

e_StylesBold 

字体样式:强制粗体。

构造及析构函数说明

◆ Font() [1/6]

foxit::common::Font::Font ( const wchar_t *  name,
uint32  styles,
Charset  charset,
int  weight 
)

带有给定属性的构造函数。

此函数用于基于系统字体构造字体。

参数
[in]name要创建的字体的PostScript名称。
[in]styles字体样式。请参考从 Font::e_StyleFixedPitch 开始的值, 可以是这些值中的一个或组合。
[in]charset要创建的字体的字符集。请参考从 Font::e_CharsetANSI 开始的值,应该是这些值中的一个。
[in]weight原始字体粗细。0表示未指定。

◆ Font() [2/6]

foxit::common::Font::Font ( StandardID  font_id)
explicit

通过标准字体ID的构造函数。

参数
[in]font_id要创建的字体的标准字体ID。请参考从 Font::e_StdIDCourier 开始的值,应该是这些值中的一个。

◆ Font() [3/6]

foxit::common::Font::Font ( const char *  font_file_path,
int  face_index,
Charset  charset 
)

从字体文件的构造函数。

参数
[in]font_file_path现有字体文件的完整路径。
[in]face_index基于零的字体面索引。有效范围:从0到(face_count-1)。 请调用系统函数获取face_count
[in]charset要创建的字体的字符集。请参考从 Font::e_CharsetANSI 开始的值,应该是这些值中的一个。

◆ Font() [4/6]

foxit::common::Font::Font ( const wchar_t *  font_file_path,
int  face_index,
Charset  charset 
)

从字体文件的构造函数。

参数
[in]font_file_path现有字体文件的完整路径。
[in]face_index基于零的字体面索引。有效范围:从0到(face_count-1)。 请调用系统函数获取face_count
[in]charset要创建的字体的字符集。请参考从 Font::e_CharsetANSI 开始的值,应该是这些值中的一个。

◆ Font() [5/6]

foxit::common::Font::Font ( foxit::common::file::StreamCallback stream)

通过使用 foxit::common::file::StreamCallback 从字体流的构造函数。

参数
[in]stream由用户实现的 foxit::common::file::StreamCallback 对象 用于读取字体文件内容。

◆ Font() [6/6]

foxit::common::Font::Font ( const Font other)

使用另一个字体对象的构造函数。

参数
[in]other另一个字体对象。

成员函数说明

◆ AddUnicodes()

UInt32Array foxit::common::Font::AddUnicodes ( const pdf::PDFDoc document,
const UInt32Array unicode_array 
)

向当前嵌入字体添加Unicode字符。

此函数仅支持新嵌入的字体。

参数
[in]document有效的PDF文档对象。
[in]unicode_array要嵌入的Unicode数组。
返回
成功嵌入到字体中的结果Unicode数组。

◆ Embed()

Font foxit::common::Font::Embed ( pdf::PDFDoc  document,
bool  is_add_all_unicodes = true 
)

将当前字体嵌入到指定的PDF文档中。

参数
[in]document有效的PDF文档对象。
[in]is_add_all_unicodes如果没有添加文档中的Unicode字符,是否将从0x0到0xFFFF的Unicode字符 添加到当前嵌入字体中。 true 表示嵌入从0x0到0xFFFF的Unicode字符, false 表示只嵌入一个Unicode字符。默认值:true。 用户可以通过 Font::AddUnicodes 添加Unicode字符。
返回
嵌入的字体。

◆ GetAscent()

int foxit::common::Font::GetAscent ( ) const

获取上升值,以1/1000 em大小为单位(PDF单位)。

返回
上升值,以1/1000 em大小为单位(PDF单位)。

◆ GetBaseFontName()

String foxit::common::Font::GetBaseFontName ( const pdf::PDFDoc document)

获取基础字体名称。

参数
[in]document有效的PDF文档对象。
返回
基础字体名称。

◆ GetCharBBox() [1/2]

RectI foxit::common::Font::GetCharBBox ( uint32  unicode) const

获取由Unicode指定的字符的边界框。

参数
[in]unicode字符的Unicode值。
返回
字符边界框。

◆ GetCharBBox() [2/2]

RectI foxit::common::Font::GetCharBBox ( foxit::uint32  unicode,
const foxit::pdf::PDFDoc document 
)

获取PDF文档中由Unicode指定的字符的边界框。

参数
[in]unicode字符的Unicode值。
[in]document有效的PDF文档对象。
返回
字符边界框。

◆ GetCharWidth() [1/2]

float foxit::common::Font::GetCharWidth ( uint32  unicode) const

获取由Unicode指定的字符的宽度(以1/1000 em大小为单位(PDF单位))。

参数
[in]unicode字符的Unicode值。
返回
字符宽度,以1/1000 em大小为单位(PDF单位)。

◆ GetCharWidth() [2/2]

float foxit::common::Font::GetCharWidth ( foxit::uint32  unicode,
const foxit::pdf::PDFDoc document 
)

获取PDF文档中由Unicode指定的字符的宽度(以1/1000 em大小为单位,作为PDF单位)。

参数
[in]unicode字符的Unicode值。
[in]document有效的PDF文档对象。
返回
字符宽度,以1/1000 em大小为单位(PDF单位)。

◆ GetCIDCharset()

CIDCharset foxit::common::Font::GetCIDCharset ( const pdf::PDFDoc document)

获取CID字体字符集。

适用于基于CID的字体。对于其他类型的字体,将抛出异常 foxit::e_ErrUnsupported

参数
[in]document有效的PDF文档对象。
返回
字体字符集。请参考从 Font::e_CIDCharsetUnknown 开始的值, 这将是这些值中的一个。

◆ GetDescent()

int foxit::common::Font::GetDescent ( ) const

获取下降值,以1/1000 em大小为单位(PDF单位)。

返回
下降值,以1/1000 em大小为单位(PDF单位)。

◆ GetEncoding()

String foxit::common::Font::GetEncoding ( const pdf::PDFDoc document)

获取当前字体编码。

参数
[in]document有效的PDF文档对象。
返回
字体编码的值,请参考<PDF reference 1.7>第442页中的 "TABLE 5.15 Predefined CJK CMap names"。

◆ GetFamilyName()

String foxit::common::Font::GetFamilyName ( )

检索字体族名称。

返回
字体族名称。

◆ GetFontType()

FontTypes foxit::common::Font::GetFontType ( const pdf::PDFDoc document)

获取字体类型。

参数
[in]document有效的PDF文档对象。
返回
字体类型。请参考从 Font::e_FontTypeType1 开始的值, 这将是这些值中的一个。

◆ GetName()

WString foxit::common::Font::GetName ( )

检索PostScript名称。

返回
PostScript名称。

◆ GetStandard14Font()

StandardID foxit::common::Font::GetStandard14Font ( const pdf::PDFDoc document)

获取标准字体ID。

适用于标准字体。对于其他类型的字体,将抛出异常 foxit::e_ErrUnsupported

参数
[in]document有效的PDF文档对象。
返回
标准字体ID。请参考从 Font::e_StdIDCourier 开始的值,这将是这些值中的一个。

◆ GetStyles()

foxit::uint32 foxit::common::Font::GetStyles ( const pdf::PDFDoc document)

获取字体样式。

参数
[in]document有效的PDF文档对象。
返回
字体样式。请参考从 Font::e_StyleFixedPitch 开始的值, 这将是这些值中的一个或组合。

◆ IsBold()

bool foxit::common::Font::IsBold ( ) const

判断当前字体是否为粗体。

返回
true 表示当前字体为粗体,false 表示不是。

◆ IsCharSupported()

bool foxit::common::Font::IsCharSupported ( foxit::uint32  unicode,
const pdf::PDFDoc document 
) const

检查当前字体是否支持某字符。

参数
[in]unicode字符unicode码。
[in]document文档对象,如果字体没有内嵌到文档中,这个参数是空对象。
返回
true 表示字符在字体中支持, false 则不是。

◆ IsEmbedded()

bool foxit::common::Font::IsEmbedded ( const pdf::PDFDoc document)

判断当前字体是否嵌入在指定的PDF文档中。

参数
[in]document有效的PDF文档对象。
返回
true 表示字体嵌入在指定的PDF文档中,false 表示不是。

◆ IsEmpty()

bool foxit::common::Font::IsEmpty ( ) const

检查当前对象是否为空。

当当前对象为空时,意味着当前对象无用。

返回
true 表示当前对象为空,false 表示不为空。

◆ IsItalic()

bool foxit::common::Font::IsItalic ( ) const

判断当前字体对象是否为斜体。

返回
true 表示当前字体为斜体,false 表示不是。

◆ IsStandardFont()

bool foxit::common::Font::IsStandardFont ( const pdf::PDFDoc document)

检查当前字体是否为标准字体。

参数
[in]document有效的PDF文档对象。
返回
true 表示当前字体是标准字体,false 表示不是。

◆ IsSupportEmbedded()

bool foxit::common::Font::IsSupportEmbedded ( const pdf::PDFDoc document)

检查当前字体是否支持嵌入到指定的PDF文档中。

参数
[in]document有效的PDF文档对象。
返回
true 表示当前字体支持嵌入到指定的PDF文档中, false 表示不支持。

◆ IsVertWriting()

bool foxit::common::Font::IsVertWriting ( const pdf::PDFDoc document)

检查当前字体是否为垂直书写。

参数
[in]document有效的PDF文档对象。
返回
true 表示当前字体是垂直书写, false 表示当前字体不是垂直书写。

◆ operator !=()

bool foxit::common::Font::operator != ( const Font other) const

不相等操作符。

参数
[in]other另一个字体对象。此函数将检查当前对象是否不等于此对象。
返回
true 表示不相等,false 表示相等。

◆ operator=()

Font& foxit::common::Font::operator= ( const Font other)

赋值操作符。

参数
[in]other另一个字体对象,其值将被赋给当前对象。
返回
对当前对象本身的引用。

◆ operator==()

bool foxit::common::Font::operator== ( const Font other) const

相等操作符。

参数
[in]other另一个字体对象。此函数将检查当前对象是否等于此对象。
返回
true 表示相等,false 表示不相等。

◆ SetEncoding()

bool foxit::common::Font::SetEncoding ( const pdf::PDFDoc document,
const char *  value 
)

设置当前字体编码。

参数
[in]document有效的PDF文档对象。
[in]value要设置的字体编码。有关编码值,请参考 <PDF reference 1.7>第442页中的"TABLE 5.15 Predefined CJK CMap names"。 此参数不应为空字符串。
返回
true 表示成功,false 表示失败。