2016-06-13 6 views
0

Ich möchte ein SVG mit Java in PNG/JPG konvertieren, und die meisten Ergebnisse verweisen auf die Verwendung von Batik.Gibt es eine Möglichkeit, Batik mit CSS3 Styling kompatibel zu machen?

Allerdings ist das Problem, dass Batik scheint nicht gut mit CSS-Stil Funktionen zu spielen.

Hier ist ein Beispiel SVG Ich versuche zu konvertieren:

wird
<svg xmlns="http://www.w3.org/2000/svg" class="graphdiagram" viewBox="-642.5 -415 1285 830"> 
    <g class="layer relationships"/> 
    <g class="layer nodes"> 
     <circle class="node node-id-0" r="19.7810942818944" fill="rgb(247, 247, 249)" stroke="rgba(0, 0, 0, 0.298039)" stroke-width="0.909091px" cx="0" cy="0"/> 
     <g class="caption"> 
      <text class="caption node" text-anchor="middle" alignment-baseline="central" x="0" y="0" fill="rgb(51, 51, 51)" font-size="14px" font-family="'Helvetica Neue', Helvetica, Arial, sans-serif">Foo</text> 
     </g> 
    </g> 
    <g class="layer properties"/> 
    <g class="layer overlay"> 
     <circle class="node overlay" r="20.235639781894402" stroke="none" fill="rgba(255, 255, 255, 0)" cx="0" cy="0"/> 
     <circle class="node ring" r="25.235639781894402" fill="none" stroke="rgba(255, 255, 255, 0)" stroke-width="10px" cx="0" cy="0"/> 
    </g> 
</svg> 

Batik Fehler wie werfen:

ERROR: null 
Enclosed Exception: 
http://www.w3.org/2000/svg: 
The attribute "stroke" represents an invalid CSS value ("rgba(0, 0, 0, 0.298039)"). 
Original message: 
The "stroke" property does not support function values. 

***** CSSEngine: exception property.syntax.error:org.w3c.dom.DOMException: The "stroke" property does not support function values. 

AttrValue:rgba(0, 0, 0, 0.298039) 

Gibt es eine einfache Möglichkeit, Syntax zu erhalten Batik zu arbeiten gut mit CSS3 - oder werde ich eine Parsing-Funktion schreiben, um die Strich-Opazität usw. manuell einzustellen?

+0

Es ist Open Source. Laden Sie es herunter und fügen Sie Unterstützung hinzu. –

+0

Überprüfen Sie ihre Dokumentenliste auf https://xmlgraphics.apache.org/batik/, sie haben auch eine Mailing-Liste –

Antwort

1

Wenn Batik RGB-Farbwerte nicht unterstützt, verwenden Sie zur Vermeidung des Problems stroke-opacity und/oder fill-opacity.

Also statt:

stroke="rgba(0, 0, 0, 0.298039)" 

können Sie:

stroke="rgb(0, 0, 0)" stroke-opacity="0.298039" 
+0

Yup, das sieht aus wie die Lösung, die ich benutze, aber es gibt andere CSS3-Funktionen, die ich auch muss ersetzen. – dwjohnston

Verwandte Themen