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) также может решить проблему.

Другие вопросы по тегам