代码之家  ›  专栏  ›  技术社区  ›  eos87

使用不带GTK的蜡染光栅[关闭]

  •  1
  • eos87  · 技术社区  · 15 年前

    我用的是 Apache Batik SVG Rasterizer Library 在python中,但是当我尝试将SVG转换为png时,我得到了这个错误gtk警告**:无法打开显示:

    如何才能不使用GTK转换SVG文件

    谢谢,对不起我的英语!


    我的密码是这个

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

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

    谢谢!!

    3 回复  |  直到 14 年前
        1
  •  2
  •   whatnick    15 年前

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

    另外,您得到的错误只是一个警告。蜡染光栅化器可能依赖于其他未提供的依赖性JAR。可能需要使用类路径设置或包装脚本。尝试从batik文件夹中运行batik光栅化器,即

    cd batik; gij --jar batik-rasterizer.jar ../file.svg
    
        2
  •  0
  •   Krab    15 年前

    试试这个:

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

    更多信息 http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/

        3
  •  0
  •   printminion    15 年前

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

    以下是一些解决方法:

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

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