Я хотел бы создать PNG-изображение из SVG, содержащего Javascript. SVG файл не зависит от внешних файлов. Мне нужно сделать это из командной строки или скрипта Python.
До сих пор я безуспешно пытался с svgexport
и Inkscape.
Вот тест, который я использовал:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg">
<text id='test' x='0' y='50'>NO</text>
<script type='application/javascript'>document.getElementById('test').textContent='YES';</script>
</svg>
Оба svgexport и Inkscape отображают его как "НЕТ", пока только мой браузер (Firefox) корректно отображает его.
Я нашел решение:
wkhtmltopdf
- это рендеринг на основе webkit, который может интерпретировать Javascript. Он прошел тест.
Если вы хотите его использовать, будьте осторожны: версия из репозиториев Debian/Ubuntu устарела и не будет работать за пределами X-сеанса (например, она не будет работать на сервере).
Используйте rsvg-convert
, она, несомненно, имеет лучшее качество преобразования и точную правильность.