Походу, нужен свежий node? Собираю под Debian 8.6, установил пакеты npm и nodejs-legacy:
$ npm i puppeteer
npm WARN engine puppeteer@0.13.0: wanted: {"node":">=6.4.0"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine agent-base@4.1.1: wanted: {"node":">= 4.0.0"} (current: {"node":"0.10.29","npm":"1.4.21"})
/
...
/git/libresvg-master/tools/rendersvg/node_modules/puppeteer/install.js:60
const cleanupOldVersions = allRevisions.map(({platform, revision}) => Downlo
^
SyntaxError: Unexpected token ,
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian
/git/node.js/node-v9.2.0$ ./configure --prefix=/usr/local
WARNING: C++ compiler too old, need g++ 4.9.4 or clang++ 3.4.2 (CXX=g++)
В Debian 8.6 по-дефолту g++ 4.9.2.
Однако, выручил clang-3.5.
$ export CXX=clang-3.5
$ ./configure --prefix=/usr/local
$ make -j5
...
/git/node.js/node-v9.2.0/out/Release/obj.host/icutools/deps/icu-small/source/i18n/reldtfmt.o: In function `icu_60::RelativeDateFormat::RelativeDateFormat(UDateFormatStyle, UDateFormatStyle, icu_60::Locale const&, UErrorCode&)':
../deps/icu-small/source/i18n/reldtfmt.cpp:(.text+0x2bc): undefined reference to `__dynamic_cast'
../deps/icu-small/source/i18n/reldtfmt.cpp:(.text+0x311): undefined reference to `__dynamic_cast'
../deps/icu-small/source/i18n/reldtfmt.cpp:(.text+0x365): undefined reference to `__dynamic_cast'
...
/git/node.js/node-v9.2.0/out/Release/obj.host/icutools/deps/icu-small/source/i18n/currpinf.o:(.rodata+0xd0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
tools/icu/genrb.host.mk:138: ошибка выполнения рецепта для цели «/git/node.js/node-v9.2.0/out/Release/genrb»
make[1]: *** [/git/node.js/node-v9.2.0/out/Release/genrb] Ошибка 1
rm d5d7e121f507957bc54e8a98042a186db43a391f.intermediate
Makefile:81: ошибка выполнения рецепта для цели «node»
make: *** [node] Ошибка 2
/git/libresvg-master/tests/svgrender$ node svgrender.js sample.svg sample.png 512
/git/libresvg-master/tests/svgrender/svgrender.js:10
(async() => {
^
SyntaxError: Unexpected token (
at Object.exports.runInThisContext (vm.js:76:16)
at Module._compile (module.js:545:28)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
at Module.runMain (module.js:607:10)
at run (bootstrap_node.js:382:7)
at startup (bootstrap_node.js:137:9)
at bootstrap_node.js:497:3
Я не понял, про какой PrintScreen (2) ты говоришь. Я специально сейчас запустил винду, в Chrome открыл .svg, и что? PrintScreen просто сделает скриншот экрана.
Ну, у меня на полке лежит лицензионный Photoshop, мне пожалуй легче поставить его. И так уже 2 часа потратил на сношения с node.js. Чисто ради любопытства оставлю собираться nodejs-8.0.0, может соберётся под моим дебом, и запустит конвертор.
Photoshop Elements умеет полноценно работать с SVG? cast AP.
Inkscape отрисовывает прямоугольник кнопки, но белый рисунок внутри красной кнопки - нет. Превью в OpenFile-диалоге браузера тоже белый рисунок (поверх красного квадрата) отрисовывает криво. Я пока внутрь SVG-файла не заглядывал, просто интуитивно сделал вывод о слоях.
Более того, все программы бажные, когда речь заходит о SVG, т.к. не следуют стандартам и каждая добавляет в SVG свое говно, которое не поддерживается другими.