Я использую html-pdf для генерации PDF через nodejs с использованием phantomJS и запускаю его на aws lambda.
У меня есть пользовательские шрифты, и ссылки на них с помощью пути в
css (src: url('path/fonts.ttf');
заставлял pdf отображаться как одно большое изображение, а размер файла был в 10 раз больше оригинала.
поэтому я изменил его, чтобы локально ссылаться на шрифты, чтобы исправить проблему с размером файла, меняя переменные qt_qpa_fontdir
и home
на мой локальный каталог шрифтов, и это работает. Шрифты теперь отображаются, и размер файла возвращается к нормальному.
Однако между шрифтами существует неправильный интервал между буквами и кернинг.
это также было проблемой, когда я ссылался на шрифты через путь, но я исправил это с помощью файла fonts.conf в папке общих шрифтов, используя xml:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font">
<edit mode="assign" name="rgba">
<const>rgb</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="lcdfilter">
<const>lcddefault</const>
</edit>
</match>
</fontconfig>
Это исправление не помогает теперь, когда на шрифты ссылаются локально. Нужно ли указывать путь к файлу конфигурации шрифтов QT? или поменять fonts.conf?