AWS Lambda PhantomJS - поддержка многоязычных шрифтов - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть лямбда-функция для генерации PDF с использованием PhantomJS.Английская версия работает как шарм, но проблема с другими языками (японский, хинди, урду и т. Д.)

Я попробовал решения, предоставленные для объединения шрифтов и конфигурации шрифта с помощью функции лямбда, нобезуспешно.

Может кто-нибудь подсказать, где я ошибаюсь?

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 голосов
/ 30 ноября 2018

Наконец-то нашел решение моей проблемы.Метод поддержки шрифтов аналогичен тому, что я делал выше, за исключением одного изменения:

@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 в качестве переменной окружения в вашей лямбда-функции со значением - / var / task / fonts

Закрытие этого вопроса, так как вышеуказанное решение работает сейчас.

...