Hi all

I have created a programm with draggable and movable graphic elements represented as a single jcomponent. In this component I call the GraphicsNode.paint() Method for displaying it onto the screen.
Here's the code snippet:

public void drawIntervention(Graphics2D g) {
   //...
   //paint background of the component
   g.setColor(Color.WHITE);
   g.fillRect(0,0,getSize().width, getSize().height);
   if(node != null) {
       //use AffineTransform for scaling the node to the dynamic size
node.setTransform(new AffineTransform(new double[] {xScale, 0, 0, yScale}));
       //center it within the component
       g.translate((double)(getSize().width-interventionSize)/2,0);
       node.getRoot().paint(g);
       //move coordinates back
       g.translate(-(double)(getSize().width-interventionSize)/2,0);
   }
   //...
}

This code causes no problem for displaying svg in the gui. When I want to create an svg file from the whole panel containing this components I call the following code:

//...
DOMImplementation domImpl = GenericDOMImplementation.getDOMImplementation();
Document document = domImpl.createDocument(null, "svg", null);
SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
svgGenerator.getGeneratorContext().setPrecision(12);
ProjectPanel p = (ProjectPanel)((PIAMainFrame)GraphicsWorkbench.MAINFRAME).getProjectPanel();
//scaling the graphics
svgGenerator.setTransform(AffineTransform.getScaleInstance(scale, scale));
//setting the final size
svgGenerator.setSVGCanvasSize(new Dimension(getPDFDimension(props).width,(int)(scale*dim.getHeight())));
//Paint the "static" content of the panel
p.getGraphPanel().paintComponent(svgGenerator);
//used to paint the jcomponents within the panel
p.getGraphPanel().paintComponents(svgGenerator);
boolean useCSS = false;
Writer out;
try {
out = new OutputStreamWriter(new FileOutputStream(svgFile), "ISO-8859-1");
   svgGenerator.stream(out, useCSS);
   out.close();
} catch (UnsupportedEncodingException e) {
   e.printStackTrace();
} catch (SVGGraphics2DIOException e) {
   e.printStackTrace();
}
//...

The export in the svg-file works perfectly, but there are some differences in the graphics in the generated svg-file and the gui display.
Take for example this small svg-grahpic:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
  xmlns:svg="http://www.w3.org/2000/svg";
  xmlns="http://www.w3.org/2000/svg";
  xmlns:xlink="http://www.w3.org/1999/xlink";
  version="1.0"
  x="0.00000000"
  y="0.00000000"
  width="25.000000"
  height="25.000000"
  id="svg2">
 <defs
    id="defs4">
   <linearGradient
      id="linearGradient2038">
     <stop
        style="stop-color:#36c228;stop-opacity:1.0000000"
        offset="0.00000000"
        id="stop2040" />
     <stop
        style="stop-color:#36c228;stop-opacity:0.00000000"
        offset="1.0000000"
        id="stop2042" />
   </linearGradient>
   <linearGradient
      x1="3.5039666"
      y1="5.1757565"
      x2="21.686712"
      y2="23.326935"
      id="linearGradient2044"
      xlink:href="#linearGradient2038"
      gradientUnits="userSpaceOnUse" />
 </defs>
 <g
    id="layer1">
   <rect
      width="24.401497"
      height="24.338364"
      x="0.31567267"
      y="0.34596437"
style="opacity:1.0000000;fill:url(#linearGradient2044);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.50338471;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000"
      id="rect1306" />
   <path
d="M 1.9256033,2.3031349 C 1.9256033,23.421637 22.586380,22.963911 22.586380,22.963911 L 1.9256033,2.3031349 z " style="fill:#0000e3;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ee1620;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
      id="path1308" />
 </g>
</svg>

In this specific case the "linearGradient2038" shows perfectly on the screen, but completely disappears in the svg-export-file from the panel.
Here's the created svg file from the panel.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN' 'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'> <svg fill-opacity="1" xmlns:xlink="http://www.w3.org/1999/xlink"; color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="425" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="256" xmlns="http://www.w3.org/2000/svg"; font-family="&apos;Dialog&apos;" font-style="normal" stroke-linejoin="miter" font-size="12" stroke-dashoffset="0" image-rendering="auto">
 <!--Generated by the Batik Graphics2D SVG Generator-->
 <defs id="genericDefs" />
 <g>
   <defs id="defs1">
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
<path d="M0 -0.0000070010915 L885 -0.0000070010915 L885 45 L0 45 L0 -0.0000070010915 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
<path d="M0 -0.0000070010915 L0 45 L885 45 L885 -0.0000070010915 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
<path d="M0 -0.000007539637 L885 -0.000007539637 L885 44.9999961853027 L0 44.9999961853027 L0 -0.000007539637 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
<path d="M0 -0.000007539637 L0 44.9999961853027 L885 44.9999961853027 L885 -0.000007539637 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
<path d="M0 -0.0000080781829 L885 -0.0000080781829 L885 44.9999961853027 L0 44.9999961853027 L0 -0.0000080781829 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
<path d="M0 -0.0000080781829 L0 44.9999961853027 L885 44.9999961853027 L885 -0.0000080781829 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
<path d="M0 -0.0000004039091 L885 -0.0000004039091 L885 44.9999961853027 L0 44.9999961853027 L0 -0.0000004039091 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
<path d="M0 -0.0000004039091 L0 44.9999961853027 L885 44.9999961853027 L885 -0.0000004039091 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
<path d="M0.0000251321235 0.0000011668485 L75.0000152587891 0.0000011668485 L75.0000152587891 43.0000038146973 L0.0000251321235 43.0000038146973 L0.0000251321235 0.0000011668485 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
<path d="M0.0000251321235 0.0000011668485 L0.0000251321235 43.0000038146973 L75.0000152587891 43.0000038146973 L75.0000152587891 0.0000011668485 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
<path d="M-0.0000139322719 0.000000674106 L-0.0000139322719 24.8417491912842 L25.0000133514404 24.8417491912842 L25.0000133514404 0.000000674106 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
<path d="M-0.0000079884248 0.000000628303 L74.9999923706055 0.000000628303 L74.9999923706055 43.0000038146973 L-0.0000079884248 43.0000038146973 L-0.0000079884248 0.000000628303 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
<path d="M-0.0000079884248 0.000000628303 L-0.0000079884248 43.0000038146973 L74.9999923706055 43.0000038146973 L74.9999923706055 0.000000628303 Z" />
     </clipPath>
     <clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
<path d="M-0.0000045687552 0.0000003634235 L-0.0000045687552 24.872091293335 L24.9999942779541 24.872091293335 L24.9999942779541 0.0000003634235 Z" />
     </clipPath>
   </defs>
<g fill="white" transform="matrix(0.4644808743169,0,0,0.4644808743169,0,0)" stroke="white">
     <rect width="915" x="0" height="553" y="0" stroke="none" />
   </g>
   <g transform="matrix(0.4644808743169,0,0,0.4644808743169,0,0)">
     <line y2="513" fill="none" x1="100" x2="100" y1="30" />
   </g>
   <g transform="matrix(0.4644808743169,0,0,0.4644808743169,0,0)">
     <line y2="513" fill="none" x1="100" x2="885" y1="513" />
     <line y2="508" fill="none" x1="885" x2="880" y1="513" />
     <line y2="518" fill="none" x1="885" x2="880" y1="513" />
<text xml:space="preserve" x="482" y="545" font-weight="bold" stroke="none">Zeit</text> <text xml:space="preserve" x="80" y="22" font-weight="bold" stroke="none">Umfeld</text>
     <line y2="518" fill="none" x1="110" x2="110" y1="508" />
     <line y2="518" fill="none" x1="875" x2="875" y1="508" />
     <line y2="518" fill="none" x1="150" x2="150" y1="508" />
<text xml:space="preserve" x="126" font-size="10" y="532" stroke="none">3.10.2005</text>
     <line y2="518" fill="none" x1="327" x2="327" y1="508" />
<text xml:space="preserve" x="300" font-size="10" y="532" stroke="none">10.10.2005</text>
     <line y2="518" fill="none" x1="503" x2="503" y1="508" />
<text xml:space="preserve" x="476" font-size="10" y="532" stroke="none">17.10.2005</text>
     <line y2="518" fill="none" x1="679" x2="679" y1="508" />
<text xml:space="preserve" x="652" font-size="10" y="532" stroke="none">24.10.2005</text> <text xml:space="preserve" x="71" font-size="10" y="544" stroke="none">1.10.2005 09:00</text> <text xml:space="preserve" x="833" font-size="10" y="544" stroke="none">31.10.2005 17:00</text>
     <line fill="none" x1="613" x2="613" y1="30" y2="513" stroke="blue" />
     <line y2="220" fill="none" x1="260" x2="637" y1="133" />
     <polygon points=" 637 220 625 222 628 213" stroke="none" />
   </g>
<g font-family="&apos;Arial&apos;" transform="matrix(0.4644808743169,0,0,0.4644808743169,0,0) translate(0,399)"> <line clip-path="url(#clipPath2)" fill="none" x1="100" x2="895" y1="22" y2="22" /> <text xml:space="preserve" x="45" y="26" clip-path="url(#clipPath2)" stroke="none">Informatik</text>
   </g>
<g font-family="&apos;Arial&apos;" transform="matrix(0.4644808743169,0,0,0.4644808743169,0,0) translate(0,303)"> <line clip-path="url(#clipPath4)" fill="none" x1="100" x2="895" y1="22" y2="22" /> <text xml:space="preserve" x="20" y="26" clip-path="url(#clipPath4)" stroke="none">IT-Projektleiter</text>
   </g>
<g font-family="&apos;Arial&apos;" transform="matrix(0.4644808743169,0,0,0.4644808743169,0,0) translate(0,207)"> <line clip-path="url(#clipPath6)" fill="none" x1="100" x2="895" y1="22" y2="22" /> <text xml:space="preserve" x="21" y="26" clip-path="url(#clipPath6)" stroke="none">Fachabteilung</text>
   </g>
<g font-family="&apos;Arial&apos;" transform="matrix(0.4644808743169,0,0,0.4644808743169,0,0) translate(0,111)"> <line clip-path="url(#clipPath8)" fill="none" x1="100" x2="895" y1="22" y2="22" /> <text xml:space="preserve" x="16" y="26" clip-path="url(#clipPath8)" stroke="none">FA-Projektleiter</text>
   </g>
<g fill="white" font-family="&apos;Arial&apos;" transform="matrix(0.4644808743169,0,0,0.4644808743169,0,0) translate(637,208)" stroke="white"> <rect x="0" y="0" clip-path="url(#clipPath10)" width="75" height="43" stroke="none" /> <rect x="0.3156726658344" y="0.3459643721581" transform="translate(16,0) matrix(1.72656921438,0,0,1.7309571467949,0,0)" clip-path="url(#clipPath11)" width="24.401496887207" height="24.3383636474609" stroke="none" />
   </g>
<g stroke-miterlimit="4" stroke-width="0.5033847093582" font-family="&apos;Arial&apos;" transform="matrix(0.4644808743169,0,0,0.4644808743169,0,0) translate(653,208) matrix(1.72656921438,0,0,1.7309571467949,0,0)" stroke-linecap="butt"> <rect x="0.3156726658344" y="0.3459643721581" clip-path="url(#clipPath11)" fill="none" width="24.401496887207" height="24.3383636474609" />
   </g>
<g stroke-linecap="butt" transform="matrix(0.8019583782639,0,0,0.8039964889484,303.3060109289618,96.6120218579235)" fill="rgb(0,0,227)" font-family="&apos;Arial&apos;" stroke="rgb(0,0,227)" stroke-width="0.5033847093582" stroke-miterlimit="4"> <path d="M1.9256031513214 2.3031349182129 C1.9256031513214 23.4216365814209 22.5863800048828 22.9639110565186 22.5863800048828 22.9639110565186 L1.9256031513214 2.3031349182129 Z" clip-path="url(#clipPath11)" fill-rule="evenodd" stroke="none" /> <path clip-path="url(#clipPath11)" fill="none" fill-rule="evenodd" d="M1.9256031513214 2.3031349182129 C1.9256031513214 23.4216365814209 22.5863800048828 22.9639110565186 22.5863800048828 22.9639110565186 L1.9256031513214 2.3031349182129 Z" stroke="rgb(238,22,32)" stroke-width="1" />
   </g>
<g stroke-miterlimit="4" font-family="&apos;Arial&apos;" transform="matrix(0.4644808743169,0,0,0.4644808743169,303.3060109289618,96.6120218579235) translate(-16,0)" stroke-linecap="butt"> <text xml:space="preserve" x="19" y="21" clip-path="url(#clipPath10)" stroke="none">Sketch</text> <text x="0" font-size="10" y="31" clip-path="url(#clipPath10)" stroke="none" xml:space="preserve">22.10.05 22:30-</text> <text x="1" font-size="10" y="41" clip-path="url(#clipPath10)" stroke="none" xml:space="preserve">22.10.05 22:30</text>
   </g>
<g fill="white" font-family="&apos;Arial&apos;" transform="matrix(0.4644808743169,0,0,0.4644808743169,0,0) translate(223,112)" stroke="white"> <rect x="0" y="0" clip-path="url(#clipPath13)" width="75" height="43" stroke="none" /> <path fill="rgb(214,124,53)" d="M24.9302463531494 12.4999952316284 C24.9302463531494 19.3682327270508 19.3624362945557 24.9360408782959 12.494194984436 24.9360408782959 C5.6259517669678 24.9360408782959 0.0581420361996 19.3682327270508 0.0581420361996 12.4999952316284 C0.0581420361996 5.6317582130432 5.6259517669678 0.0639519914985 12.494194984436 0.0639519914985 C19.3624362945557 0.0639519914985 24.9302463531494 5.6317582130432 24.9302463531494 12.4999952316284 Z" clip-path="url(#clipPath14)" transform="translate(16,0) matrix(1.728844446987,0,0,1.7288455076166,0,0)" stroke="none" />
   </g>
<g fill="white" font-family="&apos;Arial&apos;" transform="matrix(0.4644808743169,0,0,0.4644808743169,111.0109289617486,52.0218579234973) translate(-16,0)" stroke="white"> <rect x="0" y="0" clip-path="url(#clipPath13)" width="75" height="43" opacity="0.75" stroke="none" /> <text x="25" y="21" clip-path="url(#clipPath13)" fill="black" stroke="none" xml:space="preserve">Test</text> <text x="0" font-size="10" y="31" clip-path="url(#clipPath13)" fill="black" stroke="none" xml:space="preserve">06.10.05 12:45-</text> <text x="1" font-size="10" y="41" clip-path="url(#clipPath13)" fill="black" stroke="none" xml:space="preserve">06.10.05 12:45</text>
   </g>
 </g>
</svg>


This issue is tested with the following configurations:
- windowsXP jre1.4.2_08 with batik-1.5-fop-0.20-5.jar from http://www.ibiblio.org/maven/batik/jars/ - windowwXP jre1.5.0_05 with batik-1.5-fop-0.20-5.jar from http://www.ibiblio.org/maven/batik/jars/

I need to use this version of batik because of a later implementation of this svg file into a pdf report using fop and xslt.


Do you have any idea where these varieties are coming from and how I can eliminate them?

Best regards
Roland


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to