Я работаю над проектом, в котором сложные визуальные эффекты создаются на сервере в svg для отображения в браузере. Одна проблема, с которой я столкнулся, связана с макетом текста. В некоторых случаях я динамически генерирую текст в текстовом элементе svg, но мне нужно знать, какого он будет размера при рендеринге.
Есть еще несколько похожих вопросов о переполнении стека:
Измерение размеров элементов SVG в Angular
Измерение размеров текста SVG без рендеринга
Однако разница здесь в том, что они выполняются в веб-браузере, я пытаюсь сделать это на сервере, в частности в приложении .NET Core, работающем в контейнере докера, который в идеале должен обеспечивать только минимальную среду.
Большое спасибо за помощь заранее.
Я полностью понимаю ваши рассуждения. Это устаревшая система, взаимодействие с сетью было взломано путем запуска приложения, которое было разработано для локального запуска на сервере, и передачи графического вывода через svg. Было бы ценно решение проблемы измерения svg. Попытка запустить больше приложений в браузере - это привлекательно, но, вероятно, это более дорогой / долгосрочный проект.
Позвольте мне перефразировать: в браузере измерение визуализированного текста - это одна строка Javascript, тогда как на сервере это сложная догадка (потому что вы предполагаете, но не знаете, какой шрифт будет использоваться, насколько широким будет каждый отдельный глиф, как частичные значения пикселей округляются, будет ли текст перемещен для оптимизации сглаживания ...). Таким образом, если измерение может производиться на стороне клиента каким-либо разумным способом, это всегда будет предпочтительнее. - Тем не менее, возможно, это даст вам приблизительную оценку: stackoverflow.com/questions/47426768
Пожалуйста, опишите, зачем вам нужна измерительная серверная часть. Если это макет чего-то, что будет отображать только клиент, это всегда работа на стороне клиента.