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