You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-users@xmlgraphics.apache.org by "M. ALIPRENDI" <al...@athamante.com> on 2002/05/21 10:12:36 UTC

Batik Rasterizer with Linux red hat

Hello,

    I've big problem to run batik rasterizer (I only need to convert a svg file to jpg) on a linux redhat 6.3 server (without X environment it's a web server). It works fine on my pc but when I try it on a linux server l've the following message :
  Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
          at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
          at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:63)
          at java.lang.Class.forName1(Native Method)
          at java.lang.Class.forName(Class.java:134)
          at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:64)
          at java.awt.Font.initializeFont(Font.java:277)
          at java.awt.Font.<init>(Font.java:361)
          at java.awt.Font.getFont(Font.java:378)
          at sun.java2d.SunGraphicsEnvironment.getBestFontFor(SunGraphicsEnvironment.java:585)
          at java.awt.font.TextLayout.standardInit(TextLayout.java:628)
          at java.awt.font.TextLayout.<init>(TextLayout.java:479)
          at org.apache.batik.gvt.text.BidiAttributedCharacterIterator.<init>(Unknown Source)
          at org.apache.batik.gvt.renderer.StrokingTextPainter.getTextRuns(Unknown Source)
          at org.apache.batik.gvt.renderer.StrokingTextPainter.getOutline(Unknown Source)
          at org.apache.batik.gvt.renderer.StrokingTextPainter.getBounds(Unknown Source)
          at org.apache.batik.gvt.renderer.BasicTextPainter.getPaintedBounds(Unknown Source)
          at org.apache.batik.gvt.TextNode.getPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.AbstractGraphicsNode.getTransformedPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown Source)
          at org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown Source)
          at org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown Source)
          at org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown Source)
          at org.apache.batik.gvt.CompositeGraphicsNode.getPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.getBounds2D(Unknown Source)
          at org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.createRendering(Unknown Source)
          at org.apache.batik.gvt.renderer.StaticRenderer.renderGNR(Unknown Source)
          at org.apache.batik.gvt.renderer.StaticRenderer.updateWorkingBuffers(Unknown Source)
          at org.apache.batik.gvt.renderer.StaticRenderer.repaint(Unknown Source)
          at org.apache.batik.gvt.renderer.StaticRenderer.repaint(Unknown Source)
          at org.apache.batik.transcoder.image.ImageTranscoder.transcode(Unknown Source)
          at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source)
          at org.apache.batik.apps.rasterizer.SVGConverter.transcode(Unknown Source)
          at org.apache.batik.apps.rasterizer.SVGConverter.execute(Unknown Source)
          at org.apache.batik.apps.rasterizer.Main.execute(Unknown Source)
          at org.apache.batik.apps.rasterizer.Main.main(Unknown Source)

On your mailing list archives, I found this solution : 

Just use the Pure Java AWT available at http://www.eteks.com/pja/en/ as
replacement for the awt toolkit. The PJA doesn't use any native graphics
resource of the system. Switching the toolkit from X11 or windows default
toolkit to PJA toolkit is simple: change the "awt.toolkit" system property
to "com.eteks.awt.PJAToolkit".

Let's go!  I've downloaded, deployed, modify batik src : 
        System.setProperty ("awt.toolkit", "com.eteks.awt.PJAToolkit");
        System.setProperty ("java.awt.graphicsenv","com.eteks.java2d.PJAGraphicsEnvironment");
        System.setProperty ("java.awt.fonts","/usr/share/fonts/default/Type1/:/usr/share/fonts/default/ghostscript/");

=> (the object PJAGraphicsEnvironment can be found, I've tried, just upper the method that launch the exception, to instantiate a variable and that's work.
  Exception in thread "main" java.lang.Error: Could not find class: com.eteks.java2d.PJAGraphicsEnvironment
          at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:56)
          at java.awt.Font.initializeFont(Font.java:259)
          at java.awt.Font.<init>(Font.java:343)
          at java.awt.Font.getFont(Font.java:360)
          at sun.java2d.SunGraphicsEnvironment.getBestFontFor(SunGraphicsEnvironment.java:560)
          at java.awt.font.TextLayout.standardInit(TextLayout.java:612)
          at java.awt.font.TextLayout.<init>(TextLayout.java:463)
          at org.apache.batik.gvt.text.BidiAttributedCharacterIterator.<init>(Unknown Source)
          at org.apache.batik.gvt.renderer.StrokingTextPainter.getTextRuns(Unknown Source)
          at org.apache.batik.gvt.renderer.StrokingTextPainter.getOutline(Unknown Source)
          at org.apache.batik.gvt.renderer.StrokingTextPainter.getBounds(Unknown Source)
          at org.apache.batik.gvt.renderer.BasicTextPainter.getPaintedBounds(Unknown Source)
          at org.apache.batik.gvt.TextNode.getPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.AbstractGraphicsNode.getTransformedPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown Source)
          at org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown Source)
          at org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown Source)
          at org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown Source)
          at org.apache.batik.gvt.CompositeGraphicsNode.getPrimitiveBounds(Unknown Source)
          at org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.getBounds2D(Unknown Source)
          at org.apache.batik.gvt.filter.GraphicsNodeRable8Bit.createRendering(Unknown Source)
          at org.apache.batik.gvt.renderer.StaticRenderer.renderGNR(Unknown Source)
          at org.apache.batik.gvt.renderer.StaticRenderer.updateWorkingBuffers(Unknown Source)
          at org.apache.batik.gvt.renderer.StaticRenderer.repaint(Unknown Source)
          at org.apache.batik.transcoder.image.ImageTranscoder.transcode(Unknown Source)
          at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source)
          at org.apache.batik.apps.rasterizer.SVGConverter.transcode(Unknown Source)
          at org.apache.batik.apps.rasterizer.SVGConverter.execute(Unknown Source)
          at org.apache.batik.apps.rasterizer.Main.execute(Unknown Source)
          at org.apache.batik.apps.rasterizer.Main.main(Unknown Source)

Configuration : 

    Batik 1.1.1 (Batic 1.5 beta2 also tried : same problem)
    RedHat 6.3
    JVM : IBMJava2-13 and jdk-1.3.1_03 (don't work with both)

So, could you tell me if I need to deploy Xwindow on the server knowing that there is no screen connected, or if I must try to found an other way to convert my svg file...

Thanks,
Cordialement,

Michel ALIPRENDI

------------------------------------------------------
Michel ALIPRENDI - ATHAMANTE
Service développement
Les Athamantes bât 4
740, av des Apothicaires
34 196 MONTPELLIER CEDEX 5
FRANCE

Tél : 04 67 63 00 00
Fax : 04 67 41 40 58
E-mail : aliprendi@athamante.com 
-----------------------------------------------------