TTEmbedFontFromFileA 函数 (t2embapi.h)

创建包含子集宽字符 (16 位) 字体的字体结构。 外部文件提供字体信息。

此函数将数据传递到客户端定义的回调例程,以便插入到文档流中。

语法

LONG TTEmbedFontFromFileA(
  [in]           HDC            hDC,
  [in]           LPCSTR         szFontFileName,
  [in]           USHORT         usTTCIndex,
  [in]           ULONG          ulFlags,
  [in]           ULONG          ulCharSet,
  [out]          ULONG          *pulPrivStatus,
  [out]          ULONG          *pulStatus,
                 WRITEEMBEDPROC lpfnWriteToStream,
  [in]           LPVOID         lpvWriteStream,
  [in]           USHORT         *pusCharCodeSet,
  [in]           USHORT         usCharCodeCount,
  [in]           USHORT         usLanguage,
  [in, optional] TTEMBEDINFO    *pTTEmbedInfo
);

参数

[in] hDC

设备上下文句柄。

[in] szFontFileName

要嵌入的字体文件名和路径。 这是 ANSI 字符串。

[in] usTTCIndex

字体文件中的从零开始的索引 (TTC) 标识要嵌入的物理字体。 如果文件包含单个字体 ((例如 TTF 或 OTF 大纲文件) ),则应将此参数设置为 0。

[in] ulFlags

指定嵌入请求的标志。 此标志可以具有以下零个或多个值。

含义
TTEMBED_EMBEDEUDC
将关联的 EUDC 字体文件数据与字体结构包括在内。
TTEMBED_RAW
返回包含完整字符集(非压缩)的字体结构。 这是函数的默认行为。
TTEMBED_SUBSET
返回一个子集字体,仅包含 pusCharCodeSetpulCharCodeSet 参数指示的字形。 对于 参数,这些字符代码必须以 16 位或 UCS-4 字符表示。
TTEMBED_TTCOMPRESSED
返回压缩的字体结构。

[in] ulCharSet

指定要嵌入的字体的字符集的标志。 此标志可以具有以下值之一。

含义
CHARSET_UNICODE
Unicode 字符集,需要 16 位字符编码。
CHARSET_SYMBOL
符号字符集,需要 16 位字符编码。

[out] pulPrivStatus

指向指示字体嵌入权限的标志的指针。 此标志可以具有以下值之一。 此函数返回授予的限制最少的许可证。

含义
EMBED_PREVIEWPRINT
预览和打印嵌入。
EMBED_EDITABLE
可编辑的嵌入。
EMBED_INSTALLABLE
可安装嵌入。
EMBED_NOEMBEDDING
受限许可证嵌入。

[out] pulStatus

指向包含有关嵌入请求的状态信息的位字段的指针。 完成此函数后,将填充此字段。 当前未为此参数定义任何位。

lpfnWriteToStream

指向将字体结构写入文档流的客户端定义的回调函数的指针。 请参阅 WRITEEMBEDPROC

[in] lpvWriteStream

表示输出流的标记。

[in] pusCharCodeSet

指向包含用于子设置的可选 Unicode 字符代码的缓冲区的指针。 此字段仅用于子设置字体,如果 theulFlagsfield 未指定TTEMBED_SUBSET,则忽略此字段。

[in] usCharCodeCount

pusCharCodeSet 指示的字符列表中的字符数。 此字段仅用于子设置字体,如果 ulFlags 字段未指定TTEMBED_SUBSET,则忽略此字段。

[in] usLanguage

指定子设置时名称表中要保留的语言。 设置为 0 可保留所有语言。 此字段仅用于子设置字体,如果 ulFlags 字段未指定TTEMBED_SUBSET,则忽略此字段。

[in, optional] pTTEmbedInfo

指向 TTEMBEDINFO 结构的指针,该结构包含可合法引用嵌入字体对象的 URL。 如果 pTTEmbedInfoNULL,则客户端调用 TTLoadEmbeddedFont 函数时,不会向嵌入字体对象添加 URL,也不会进行 URL 检查。

返回值

如果嵌入成功,则返回E_NONE。

字体结构由客户端合并到文档流中。 设置 pulPrivStatus ,指示字体的嵌入权限;和 pulStatus 设置为提供嵌入操作的结果。

否则,返回 嵌入函数错误消息中所述的错误代码。

注解

此函数引用客户端定义的回调例程,用于将字体结构嵌入到文档流中。

客户端负责确定和指示字体的字符集。

有关从设备上下文中嵌入 Unicode 字符的信息,请参阅 TTEmbedFont;有关从设备上下文中嵌入 UCS-4 字符的信息,请参阅 TTEmbedFontEx

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 t2embapi.h
Library T2embed.lib
DLL T2embed.dll

另请参阅

TTEMBEDINFO

TTEmbedFont

TTEmbedFontEx

TTLoadEmbeddedFont