谷歌搜索几个小时后,我仍然无法在Odoo生成的PDF中显示自定义字体 . 非常感谢,非常感谢!这是完整的故事 .

我创建了一个继承account.report_invoice_document的自定义报告 . 这是必需的,因为定制发票以显示额外信息(例如,协调系统代码摘要) . 我还被要求使用自定义字体来自定义发票的布局 .

在这个模板中,我添加了一个内联样式表并将font-face应用于整个文档:

<style>
@font-face {
    font-family: 'My Font';
    font-weight: normal;
    font-style: normal;
    src: url(data:font/opentype;charset=utf-8;base64,d09GRg<!--[ LONG BASE64 STRING ]-->DN6ag4) format('woff'),
         url(data:font/truetype;charset=utf-8;base64,AAEAAA<!--[ LONG BASE64 STRING ]-->moOA==) format('truetype');
}


html, body
{
    font-size: 8;
    font-family: 'My Font';
}
</style>

调整发票报告以生成HTML,我能够在浏览器的屏幕上获得预期的结果(假设我的计算机上没有安装运行浏览器的字体) . 按“打印”按钮通过wkhtmltopdf导出与PDF文件相同的报告我收到了包含正确数据的发票,但没有正确的字体系列或大小 .

我测试的东西没有成功:

  • 仅使用WOFF

  • 仅使用TTF

  • 同时使用WOFF和TTF

  • 直接PDF生成,主要不在屏幕上显示HTML

  • 在样式中添加.mytest类并将其应用于特定的html标记

仍然相同:在屏幕上确定,不像PDF文件那样预期 .

对于实验,还试图包括Material Icon如下:

<style>
@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url('data:font/truetype;charset=utf-8;base64,AAEA<!--[ LONG BASE64 STRING ]-->ABc=') format('truetype');
}

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}
</style>

然后在模板中的某处添加它 .

<span>TEST <i class="material-icons">&#xE87C;</i></span>

与上述相同:在屏幕上运行良好并显示“TEST”一个笑脸图标,部分在PDF上工作,仅显示没有脸部图标的TEST .

我被困在那儿 . 有人可以帮忙吗?

谢谢 .