【发布时间】:2023-03-07 23:05:01
【问题描述】:
前提:我知道 PDF 文本是通过 C 库呈现的,该库可以理解字体并能够以图形形式呈现它们。例如,开源 PDF 库(如 poppler 或 mupdf)依赖于负责渲染字体的 freetype2。 问:我想知道 HTML Web 浏览器中使用哪种方法来呈现文本和字体。
【问题讨论】:
标签: html pdf text fonts browser
前提:我知道 PDF 文本是通过 C 库呈现的,该库可以理解字体并能够以图形形式呈现它们。例如,开源 PDF 库(如 poppler 或 mupdf)依赖于负责渲染字体的 freetype2。 问:我想知道 HTML Web 浏览器中使用哪种方法来呈现文本和字体。
【问题讨论】:
标签: html pdf text fonts browser
PDF 通常包含呈现文档所需的所有内容,包括字体。根据wikipedia
可移植文档格式 (PDF) 是一种用于表示 以独立于应用软件、硬件、 和操作系统。 [2]每个 PDF 文件都封装了一个完整的 固定布局平面文档的描述,包括文本, 显示它所需的字体、图形和其他信息。
浏览器通常(希望)遵循 W3C 定义的标准。例如,在http://www.w3.org/TR/css3-fonts/ 中,我们有以下内容:
字体资源可能是本地的,安装在用户所在的系统上 代理正在运行或可下载。对于本地字体资源 可以直接从字体中获取描述信息 资源。对于可下载的字体资源(有时称为 web 字体),描述性信息包含在参考中 到字体资源。字体系列通常不包含 字体属性的每个可能变化的单面。 CSS 字体选择机制描述了如何匹配给定的一组 CSS 给定字体的字体属性。
如果您真的想深入了解浏览器如何呈现字体,请熟悉http://www.w3.org/TR/css3-fonts/。
因此,CSS 为网页设计师提供了指定要使用的字体的优先级的能力。例如,W3C 提供了以下示例:
body {
font-family: Helvetica, Verdana, sans-serif;
}
如果 Helvetica 可用,它将在渲染时使用。如果两者都没有 Helvetica 和 Verdana 都存在,然后是用户代理定义的 sans 将使用衬线字体。
【讨论】: