java - batik-rasterizer.jar - 将 svg 转换为 png

标签 java php linux svg exec

我尝试使用以下命令在我的 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 kb 无效图像创建的

注意: 我也尝试过以下方法

1)包含batik-rasterizer.jar的文件夹,该文件的所有者为root,权限设置为777。

2)我还尝试使用 /user/bin/java 执行它,which java 插入了 pf java 命令。

3)我还尝试使用 putty 使用终端以 root 身份执行此命令,Java 安装在我的服务器中。

最佳答案

使用-Djava.awt.headless=true命令行选项执行java:

$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) 也可能会解决该问题。

关于java - batik-rasterizer.jar - 将 svg 转换为 png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25094131/

相关文章:

php - Mysql意外的T_LNUMBER

php - 使用 php 从 MySQL 数据库中检索图像

linux - QtQuick : Module is not installed

php - 尝试在 Linux 中通过 PHP 使 apache 运行 Python 时出现权限被拒绝错误

java - JTable 多久调用一次 getValueAt()?

java - 整数不会出现在文本字段中

java - 有 2 个按钮影响同一个标签

php - 使用 Docker 容器运行 PHP 脚本

node.js - Nodejs - 了解服务状态的最佳方式 [linux]

java - 在 Android 中从 Parse.com 检索指针数据