AWS Lambda PhantomJS-多语言字体支持

时间:2018-11-28 04:04:11

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

我有一个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;
}

FontConfig:

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

谢谢。

1 个答案:

答案 0 :(得分:1)

终于找到了解决我问题的方法。支持字体的方法与我上面所做的类似,只是有所不同:

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

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

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

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

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

由于上述解决方案正在工作,因此结束了这个问题。