AWS Lambda PhantomJS - 多语言字体支持

AWS Lambda PhantomJS - multi language font support

我有一个 Lambda 函数可以使用 PhantomJS 生成 PDF。英文版很有魅力,但问题出在其他语言(日语、印地语、乌尔都语等...)

我尝试了为使用 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>

谢谢。

终于找到了我的问题的解决方案。支持字体的方法与我上面做的类似,除了一个变化:

@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

关闭此问题,因为上述解决方案现在有效。