Freemarker:使用外部字体

Posted

技术标签:

【中文标题】Freemarker:使用外部字体【英文标题】:Freemarker: use external font 【发布时间】:2014-10-17 16:39:33 【问题描述】:

是否可以在 Freemarker 中使用外部字体? 我试图将<style> 属性放在我的模板中以使用@font-face 规则,但它不起作用,电子邮件没有指定字体。

模板内容如下:

<!DOCTYPE html>
<html>
    <head>
    <style type="text/css">
        @font-face  font-family: Cool; src: url('font.ttf'); 
        body 
            font-family: Cool
        
    </style>
    </head>
    <body>
        <h1>Email text</h1>
        <small>Very cool font</small>
    </body>
</html>

然后我尝试在@font-face 规则src: url('http://myservername/font.ttf') 中指定非相对网址,但电子邮件也使用常用字体。

我尝试将外部样式表包含在模板中,如下所示:

...
    <head>
    <link rel="stylesheet" type="text/css" href="http://myservername/style.css" />
    </head>
...

style.css的内容是:

@font-face  font-family: Cool; src: url('http://myservername/font.ttf'); 
body 
    font-family: Cool

当我在浏览器中打开模板时,一切正常:

但是当电子邮件发送给用户时 - 浏览器会使用常规字体显示它。

你能帮忙找出问题吗?

【问题讨论】:

这不是 FreeMarker 问题,而是 HTML+CSS+电子邮件问题。另请注意,并非所有电子邮件客户端都支持自定义字体,或自动从外部 URL 加载资源。 【参考方案1】:

真的,问题出在电子邮件客户端,它不支持带有style 标签的head 部分。

关于这个话题的好文章在这里:http://css-tricks.com/using-css-in-html-emails-the-real-story/

【讨论】:

以上是关于Freemarker:使用外部字体的主要内容,如果未能解决你的问题,请参考以下文章

在freemarker中如何设置红色的*?

如何实现网页静态化

Spring Boot从入门到进阶教程系列 -- 集成Freemarker配置

java用freemarker导出数据到word(含多图片)

Freemarker 转义 freemarker

freemarker莫名报错