Foxit PDF SDK

Public 类型 | Public 成员函数 | 所有成员列表
foxit::common::Font类 参考
类 foxit::common::Font 继承关系图:

## 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 char *font_file_path, int face_index, Charset charset)
| 从字体文件的构造函数。 更多...
| Font (const Font &other)
| 使用另一个字体对象的构造函数。 更多...
| Font (const wchar_t *font_file_path, int face_index, Charset charset)
| 从字体文件的构造函数。 更多...
| Font (const wchar_t *name, uint32 styles, Charset charset, int weight)
| 带有给定属性的构造函数。 更多...
| Font (foxit::common::file::StreamCallback *stream)
| 通过使用 foxit::common::file::StreamCallback 从字体流的构造函数。 更多...
| Font (StandardID font_id)
| 通过标准字体ID的构造函数。 更多...
| ~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 (foxit::uint32 unicode, const foxit::pdf::PDFDoc &document)
| 获取PDF文档中由Unicode指定的字符的边界框。 更多...
RectI | GetCharBBox (uint32 unicode) const
| 获取由Unicode指定的字符的边界框。 更多...
float | GetCharWidth (foxit::uint32 unicode, const foxit::pdf::PDFDoc &document)
| 获取PDF文档中由Unicode指定的字符的宽度（以1/1000 em大小为单位，作为PDF单位）。 更多...
float | GetCharWidth (uint32 unicode) const
| 获取由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
| 不相等操作符。 更多...
Font & | operator= (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

enum foxit::common::Font::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

enum foxit::common::Font::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

enum foxit::common::Font::FontTypes

字体类型的枚举。

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

枚举值
e_FontTypeType1 | 字体类型：Type1。
e_FontTypeTrueType | 字体类型：TrueType。
e_FontTypeType3 | 字体类型：Type3。
e_FontTypeCIDFont | 字体类型：CID 字体。

## ◆ StandardID

enum foxit::common::Font::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

enum foxit::common::Font::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 | ( | foxit::uint32 | unicode,
|  | const foxit::pdf::PDFDoc & | document
| ) |  |

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

参数

  [in] | unicode | 字符的Unicode值。
  [in] | document | 有效的PDF文档对象。

返回
  字符边界框。

## ◆ GetCharBBox() [2/2]

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

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

参数

  [in] | unicode | 字符的Unicode值。

返回
  字符边界框。

## ◆ GetCharWidth() [1/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单位）。

## ◆ GetCharWidth() [2/2]

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

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

参数

  [in] | unicode | 字符的Unicode值。

返回
  字符宽度，以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 表示失败。