跳转至

可重现性与字体安全

字体识别

创建一般的 FontLibrary 时,GlyphKit 绝不搜索这台机器。请提供字体路径、不可变的字节或二进位数据流。它只读取输入一次,并用字节的 SHA-256 与字体集合索引识别字体面,所以把相同的字节搬到别处,识别不会改变。

可重现的输入

要得到可重现的输出,请提供明确的 FontSource,保持它们的顺序稳定,声明后备字族,并把排版结果或字体清单串行化。搜索系统字体是要主动选用的枚举步骤,绝不是暗中的后备。discover_system_fonts() 返回一份清单;请把它冻结,之后只通过会检查已记录指纹的解析器还原。清单是目录,不是字体字节的打包。

FontManifest(faces, generic_families, diagnostics=())

可串行化的字体面清单,带有稳定的识别、来源与可变字体的中继数据。

FontUse(face_id, source_ranges, variation_coordinates=())

记录一份排版结果中,哪个字体面与可变字体坐标负责了哪些原文范围。

字体输入上限是 128 MiB。空的、格式错误的、无法访问的与过大的数据,都会抛出结构化的 GlyphKit 错误。GlyphKit 不使用网络,也绝不会偷偷选用没有设置的系统字体。

字体安全

library.subset() 返回字节与中继数据。这个政策是机械式的,不是法律意见:

声明的权限 缺省结果
可安装或可编辑 允许用于兼容的用途
预览或打印 只允许不可编辑的预览或打印输出
受限 拒绝
不明或没有 拒绝,除非 allow_unknown=True

字体授权与散布权利仍由调用端负责。选用的 portable 配置文件激活 WOFF2,基本软件包则提供 SFNT 子集。

使用端的义务

绘图端依序取用已定位的字形,把 \(s/U\) 套用到精确轮廓,遵守位移与基线,并用 MathRule 提供的粗细画每条线。它不可以重新处理字形,也不可以重做字体配对。

与绘图端无关

命题 · 与绘图端无关

如果两个绘图端取用相同的排版结果、相同的精确轮廓、相同的仿射单位换算与相同的裁切矩形,它们的字形几何在输出数值精度内完全相同。

位图的抗锯齿可能不同,但字形处理、字幅、换行位置与 Bézier 几何都不会不同。

评论