0

I'm trying to implement DOMPDF, everything is working (thanks to multiple Stack users) but I'm now having trouble rendering WebFonts when.

According to the examples on the Google Code project for DOMPDF it is possible to use webfonts: http://pxd.me/dompdf/www/examples.php#css_at_font_face.html,html

I've ref'd the font in the page as I would a HTML page:

<link href='http://fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300' rel='stylesheet' type='text/css'>

and I've ref'd the font in the CSS:

body{
    font-family: 'Roboto Condensed', sans-serif;
}

but DOM PDF reports:

Class 'Font_Glyph_Outline' not found

Can any more DOMPDF guru's come to my aid?

4

2 回答 2

0

不幸的是,我还不能发表评论:(但是您是否尝试在 dompdf_config.inc.php 文件中将“DOMPDF_ENABLE_FONTSUBSETTING”设置为 false?这可能(或可能不会)解决您的问题。除此之外,我不知道。

有趣的阅​​读虽然关于类似的DOMPDF 问题

于 2013-07-16T16:46:19.480 回答
0

您的问题有两个问题需要解决。更紧迫的是 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 有多稳定。它们似乎是某种散列,因此当新版本发布时它们可能会消失。为了安全起见,您可能希望自己托管文件。

于 2013-07-16T21:37:55.450 回答