Проблема с отображением через WBE2-HDMI. Шрифты не те, отцентровать текст нормально (прогнозируемо) не получается - всё плавает туда-сюда, пробовал разные шрифты - разницы нет. В конфиге и скрипте для старта xinit ничего нет про шрифты. А судя по всему надо в firefox который выводится через hdmi прибить нужные шрифты. Разумеется в Хроме по сети всё идеально как не изголяйся
При подключении в браузере используются шрифты компьютера.
При подключении по HDMI используются шрифты из Х11 линукса на контроллере.
Да, это я понимаю. Вместе с этим, если подсунуть браузеру шрифт которого у него не оказалось, мы получаем кривую картинку уже в браузере - и шрифт таймсНьюРоман, а не убунту и центровка рушится. Такая себе вёрстка получается когда оно живёт своей жизнью) Поэтому возник вопрос. Есть способ передать один и тот же шрифт и в браузер по сети и по локалхост средствами линукса?
Добрый день!
Вашим вопросом займется инженер. В течение дня даст ответ.
Добрый день!
Да, понятно, в разных браузерах – разные шрифты, добиться одинаковой картинки сложно.
Я бы порекомендовал вам попробовать привязать текст в SVG к точе в середине:
<text x="960" y="966.949"
text-anchor="middle"
dominant-baseline="middle"
style="font-size:96px;font-family:ISOCPEUR;fill:#333333;stroke:#cccccc;stroke-width:5">
button 4
</text>
Чтобы фонт был доступен оттовсюду, ссылку на него можно попробовать сделать класс для текста с таким шрифтом в SVG:
<style><![CDATA[
@import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;700&display=swap');
.wbtext {
font-family: "Ubuntu", sans-serif;
}
]]></style>
И использовать потом:
<text class="wbtext">…</text>
SVG, насколько знаю, позволяет инкорпорировать шрифты прямо в SVG, перекодировав файл в Base64.
Можете хранить шрифты прямо на контроллере, но для этого вам надо будет поменять конфигурацию nginx, описав путь к папке со шрифтами.
чёт не срабатывает. Добавил в /var/www/fonts/ нужный шрифт, добавил в /etc/nginx/includes/default.wb.d/fonts.conf
location /fonts/ {
alias /var/www/fonts/;
expires 1y;
add_header Cache-Control "public, immutable";
access_log off;
# Разрешаем CORS для шрифтов (важно для @font-face)
location ~* \.(woff|woff2|ttf|eot)$ {
add_header Access-Control-Allow-Origin "*";
}
}
рестартанул, не работает - на компе нет Убунты, на дисплее с hdmi ещё и Isocpeur. Где ещё что прописать нужно?
А сам фонт доступен по этому пути с контрорллера? В консоли браузера без ошибок? Пришлите ваш SVG, можно в личные сообщения, посмотрю!
- Шрифты доступны и по сети и через hdmi по localhost.
- Ошибок в консоли по шрифтам нет.
- Создал тестовую страницу в которой указал свои шрифты - всё работает.
- Файлики с svg юзаю ваши пока изучаю тему, например wb-dashboards-demo/flat-dash-demo/svg/panel-floor.svg at main · wirenboard/wb-dashboards-demo · GitHub
- Шрифты, указанные в svg при отрисовке веб-интерфейса не передаются, хотя браузер видит что они прописаны в svg.
Чувствую что куда-то надо вставить @font-face {} )) Есть способ заставить страницу считывать указанные в /mnt/data/etc/wb-webui.conf шрифты из прописанных там svg?
Боюсь, нет простых способов. А вот так, как я советовалб с классом в SVG не получается?
Вот это:
<style><![CDATA[
@import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;700&display=swap');
.wbtext {
font-family: "Ubuntu", sans-serif;
}
]]></style>
?
да это конечно работает, но это ж надо после создания в Inkscape файла ручками выискивать все текстовые блоки и править. Хоть бы как-то это автоматизировать
Проконсультировался с нашими разработчикаими-фронтэндерами, мне сказали, что к них задача по отображению шрифтов в SVG-панелях стоит, какой-то механизм будет реализован, но сейчас ничего предложить не можем.
Я не уверен, что шрифты, которые страница с SVG подгрузит, будут автоматом рендериться в самом SVG, там свое пространство стилей, не унаследуется.
Я бы преложил, если не хочется руками,написать скрипт для автозамены в SVG шрифтов на шрифты со ссылками – нашего робота можно поробовать попросить.
Здравствуйте! Остались ли вопросы у вас по этой теме?
спасибо за консультацию, наверно проще и в итоге уйти в отображение своей html чем мучиться с вёрсткой svg)
Нет, мучится точно не надо! Коллеги-разработчики в курсе, надеюсь, у них получится сделать так, чтоб не мучится больше не приходилось!


