Guides
字体管理
ComPDF SDK 支持读取设备中已有的字体族及其样式,并将其应用于注释、表单、水印、页眉页脚、贝茨码等多种功能。这将帮助您设计出更美观的 PDF 文件,或导入自定义字体以满足特定需求。
导入字体
默认情况下,SDK 使用的字体来自设备系统,不同地区的设备可能包含不同的字体集。您可以通过导入字体接口来扩展可用的字体样式。
导入字体步骤如下:
- 将字体文件放置到指定的文件夹路径。
- 使用
ComPDFKit.setImportFontDir(dir, addSysFont)设置字体目录。 - 初始化 SDK。
dart
// 将 assets 目录中的字体复制到存储中
final fontDir = await extractAssetFolder(context, 'extraFonts/');
// 确定是否添加系统字体,这会影响 ComPDFKit.getFonts() 返回结果中是否包含系统字体
bool addSysFont = true;
// 设置指定的字体文件夹
await ComPDFKit.setImportFontDir(fontDir, addSysFont: addSysFont);
// 初始化 SDK
await ComPDFKit.initWithPath(licenseFile.path);注意:字体导入接口必须在初始化 SDK 之前调用。
更新字体
初始化 SDK 后,可使用 ComPDFKit.updateImportFontDir(fontDir, addSysFont: false) 接口刷新字体列表,确保新导入的字体能够被正确识别和使用。
dart
// 将 assets 目录中的字体复制到存储中
final fontDir = await extractAssetFolder(context, 'extraFonts2/');
// 更新字体列表
final result = await ComPDFKit.updateImportFontDir(fontDir, addSysFont: false);获取字体
在创建注释、表单、水印等对象时,可通过 ComPDFKit.getFonts() 获取当前可用的字体列表。
dart
List<CPDFFontName> fonts = await ComPDFKit.getFonts();
for (var font in fonts) {
final familyName = font.familyName;
final styleName = font.styleNames[0];
}关于字体族与样式名称
Font Family(字体族):
字体族是指一组具有相同设计风格的字体系列。例如,Helvetica 字体族包含多种样式,如 Helvetica Regular、Helvetica Bold、Helvetica Italic 等,它们都属于 Helvetica 字体族。
Font Style(字体样式):
字体样式是指字体族中的具体变体,用于区分同一字体族中的不同风格,例如粗体、斜体、正常体等。以 Helvetica 字体族为例,Regular、Bold、Italic 等都是不同的样式名称。