您的问题有两个问题需要解决。更紧迫的是 PHP 错误,正如@tom-metcalfe 所指出的,尚未解决。可能有助于解决的两条信息是:dompdf 版本、PHP 版本。
如果您确实解决了该错误,您将需要解决另一个问题:dompdf 仅理解at-font CSS 中的命名字体权重。如果您可以自己维护 CSS,则可以解决此问题。
您需要基于 CSS 的 True Type Font (TTF) 版本工作,因为 dompdf 目前只能嵌入 TTF。Google Web Fonts at-font 服务根据访问浏览器提供最合适的格式。要获得样式表的 TTF 版本,请访问需要 TTF 用于 Web 字体的浏览器中的 URL。我在我的服务器上使用了 lynx(TTF 必须是未知浏览器的后备)。使用来自 Google 的样式表来创建您的自定义 CSS,例如:
@font-face {
font-family: 'Roboto Condensed Light';
font-style: normal;
font-weight: normal;
src: local('Roboto Condensed Light'), local('RobotoCondensed-Light'), url(http://themes.googleusercontent.com/static/fonts/robotocondensed/v7/b9QBgL0iMZfDSpmcXcE8nL3QFSXBldIn45k5A7iXhnc.ttf) format('truetype');
}
@font-face {
font-family: 'Roboto Condensed';
font-style: normal;
font-weight: normal;
src: local('Roboto Condensed Regular'), local('RobotoCondensed-Regular'), url(http://themes.googleusercontent.com/static/fonts/robotocondensed/v7/Zd2E9abXLFGSr9G3YK2MsDR-eWpsHSw83BRsAQElGgc.ttf) format('truetype');
}
@font-face {
font-family: 'Roboto Condensed';
font-style: normal;
font-weight: bold;
src: local('Roboto Condensed Bold'), local('RobotoCondensed-Bold'), url(http://themes.googleusercontent.com/static/fonts/robotocondensed/v7/b9QBgL0iMZfDSpmcXcE8nDokq8qT6AIiNJ07Vf_NrVA.ttf) format('truetype');
}
请注意,font-weight
声明已修改为使用命名的权重,并且字体的“轻”变体被赋予了自己的家族名称。由于 dompdf 不完全支持数字权重,因此您必须这样做。
我不知道这些字体 URL 有多稳定。它们似乎是某种散列,因此当新版本发布时它们可能会消失。为了安全起见,您可能希望自己托管文件。