【发布时间】:2019-03-18 09:47:45
【问题描述】:
我正在尝试使用 fontlibrary.org 加载字体以生成 PDF 格式的文档。我目前在网站上使用这些相同的字体,一切都按预期工作;但是,当我尝试使用这些字体打印文档时,strong 不会呈现粗体,em 不会呈现为斜体。为了解决这个问题,我必须这样做(这已经是sass,所以你可以想象对应的CSS):
body {
font-family: "HkGroteskRegular", sans-serif;
strong {
font-family: "HankenGroteskBold", sans-serif;
font-weight: bold;
}
em {
font-family: "HankenGroteskItalic", sans-serif;
font-style: italic;
}
}
h1, h2, h3, h4, h5, h6 {
font-family: "NormungRegular", serif;
strong {
font-family: "NormungBold", serif;
font-weight: bold;
}
em {
font-family: "NormungItalic", serif;
font-style: italic;
}
}
code, pre {
font-family: 'FantasqueSansMonoRegular', monospace;
strong {
font-family: "FantasqueSansMonoBold", monospace;
font-weight: bold;
}
em {
font-family: "FantasqueSansMonoItalic", monospace;
font-style: italic;
}
}
所以我有几个问题:
-
这在网络上是如何运作的?浏览器如何为粗体加载粗体字体,为斜体加载斜体字体等等?显然,浏览器模拟了粗体和斜体的字体变体,因此它不使用导入的字体变体。李> - 既然这不适用于打印,那是谁坏了? fontlibrary.org 是否错误地提供字体并且浏览器(和
wkhtmltopdf)找不到它们?浏览器和wkhtmltopdf是否都错误地加载了字体文件? -
如果 fontlibrary.org 坏了由于 fontlibrary.org 似乎使用的字体变体命名方案与世界其他地方似乎不匹配,那么我可以信任谁来提供这些 @987654327 @ 规则正确吗?我必须自己写才能确定吗? - 我可以做些什么来使这项工作变得更好?
更新:2018 年 10 月 14 日。我注意到,当我下载字体以便可以在本地找到它们时,一切正常。我怀疑发生这种情况是因为本地安装的字体名称遵循允许浏览器、打印预览和pandoc 找到它们的字体变体的命名约定。 如果有人确认命名约定可以解决问题,我将不胜感激。 在这种情况下,我可以调整 @font-face 规则以从 fontlibrary.org 加载字体,这样我就不用't 需要在本地安装字体。
【问题讨论】:
-
浏览器可能会使用仿粗体和仿斜体,如果仔细观察,可能会发现差异。作为基本设置,您如何进行 css 打印是必需的,我很幸运,另一半为我完成了这项工作。
-
@CarolMcKay 确实如此,显然。我今天早上才注意到人造粗体/斜体。当我在本地安装字体时,一切似乎都按预期工作,我想字体变体的某种命名约定使它一切正常。这可以解释为什么不使用相同命名约定的 fontlibrary 字体的行为不符合我的预期。
标签: css pdf printing fonts font-family