【问题标题】:AWS Lambda PhantomJS - multi language font supportAWS Lambda PhantomJS - 多语言字体支持
【发布时间】:2018-11-30 19:15:56
【问题描述】:

我有一个使用 PhantomJS 生成 PDF 的 Lambda 函数。英文版很吸引人,但问题在于其他语言(日语、印地语、乌尔都语等)

我尝试了将字体和字体配置与 lambda 函数绑定的解决方案,但没有成功。

有人可以建议我哪里出错了吗?

CSS:

@font-face {
    font-family: 'Noto Serif Devanagari';
    src: url('./fonts/NotoSerifDevanagari-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

字体配置:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <dir>/var/task/fonts</dir>
  <cachedir>/tmp/fonts-cache/</cachedir>
  <config></config>
</fontconfig>

谢谢。

【问题讨论】:

    标签: amazon-web-services aws-lambda phantomjs font-face


    【解决方案1】:

    终于找到了解决我问题的方法。支持字体的方法和我上面做的类似,只是做了一个改动:

    @font-face {
        font-family: 'Noto Serif Devanagari';
        font-weight: normal;
        font-style: normal;
    }
    

    src: url('./fonts/NotoSerifDevanagari-Regular.ttf') 格式('truetype'); 删除了 src: url() 行,因为这会将文本转换为光栅图像,并且 PDF 大小因此而增加。

    另外,只需在包中的 ./fonts 文件夹中添加所需的字体,并在 nodejs 代码中使用以下行:

    process.env.FONTCONFIG_PATH='/var/task/fonts';
    

    或者更好地将 FONTCONFIG_PATH 添加为 lambda 函数中的环境变量,其值为 - /var/task/fonts

    由于上述解决方案正在运行,因此关闭此问题。

    【讨论】:

    • 在网上搜索后,这解决了我的 phantomjs 问题,现在我可以使用自定义字体了!
    猜你喜欢
    • 2020-08-16
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多