batik-rasterizer.jar - конвертировать SVG в PNG
Я попытался установить экспортный сервер на моем сервере Linux с помощью следующей команды, чтобы загрузить график в виде изображения из Highcharts.
$command = "java -jar batik-rasterizer.jar -m image/png -d temp/1a6b5dd08ec607454b81f91097fb24a6.png temp/1a6b5dd08ec607454b81f91097fb24a6.svg 2>&1 ";
$output = shell_exec($command);
echo "Command: $command <br>";
echo "Output: $output";
Он отлично создает изображение на моей локальной машине Windows, но я загрузил его на свой сервер Linux, я получаю ошибки.
About to transcode 1 SVG file(s) Converting 1a6b5dd08ec607454b81f91097fb24a6.svg to temp/1a6b5dd08ec607454b81f91097fb24a6.png ... (.:21519): Gtk-WARNING **: cannot open display:
Почему это происходит?
И я замечаю, что изображение создано с 0 КБ недействительным изображением
Примечание: я также попробовал следующие методы.
1) папка, содержащая batik-rasterizer.jar, и файлы имеют владельца в качестве пользователя root и разрешение установлено как 777.
2) Я также пытаюсь выполнить его с помощью / user / bin / java, которая является командой java insted pf java.
3) Я также пытаюсь выполнить эту команду как root с использованием терминала, используя putty, на моем сервере установлена Java.
1 ответ
Выполнить Java с -Djava.awt.headless=true
опция командной строки:
$command = "java -Djava.awt.headless=true -jar batik-rasterizer.jar -m image/png -d temp/out.png temp/in.svg 2>&1 ";
Обновить
Если передача дополнительной опции командной строки все еще не дает ожидаемого результата, проверьте версию Java. Обновление JRE до более поздней версии (1.7) также может решить проблему.