0

我在 python 中使用Apache Batik SVG Rasterizer Library,但是当我尝试将 svg 转换为 png 时,我收到此错误 Gtk-WARNING **: cannot open display:

如何不使用 GTK 转换 SVG 文件

谢谢和对不起我的英语!


我的代码是这个

gij --jar batik/batik-rasterizer.jar file.svg

我使用 GIJ couse 是一个共享主机。

谢谢!!

4

3 回答 3

3

你有代码示例吗?该错误表明您正在无头/无显示系统上执行绘图。这可能不是由于 SVG 转换,而是由于调用显示绘图/窗口或类似的东西。如果您在环境中附加监视器或设置 DISPLAY 变量,该错误将消失。

此外,您得到的错误只是一个警告。batik rasterizer 可能依赖于未提供的其他依赖项 jar。可能您需要使用类路径设置或包装脚本。尝试从 batik 文件夹中运行 batik-rasterizer,即

cd batik; gij --jar batik-rasterizer.jar ../file.svg
于 2010-10-13T07:49:25.500 回答
0

尝试这个:

$ export DISPLAY=java; gij -Djava.awt.headless=true --jar batik/batik-rasterizer.jar file.svg

更多关于http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/

于 2010-11-13T20:18:32.993 回答
0

我找到了这个信息http://xmlgraphics.apache.org/fop/1.0/graphics.html#batik

以下是一些解决方法:

  • 使用-Djava.awt.headless=true命令行选项启动 Java 。
  • 安装一个 X 服务器,它提供内存中的帧缓冲区,而无需实际使用屏幕设备或任何显示硬件。一个例子是Xvfb
  • 安装一个无需底层 X 服务器即可模拟 AWT 的工具包。一个例子是 PJA 工具包,它是免费的,并附带详细的安装说明。

这是“如何在 Linux 服务器中安装 Xvfb(X11 服务器)” http://corpocrat.com/2008/08/19/how-to-install-xvfb-x11-server-in-linux-server/

于 2011-02-04T13:42:33.047 回答