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
关闭此问题,因为上述解决方案现在有效。
我有一个 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
关闭此问题,因为上述解决方案现在有效。