2016-06-13 2 views
0

Javaを使用してSVGをPNG/JPGに変換したいのですが、結果のほとんどがBatikを使用しています。BatikをCSS3スタイリングに対応させる方法はありますか?

しかし、私が気にしている問題は、BatikがCSSスタイル機能でうまく動かないようだということです。バティックのようなエラーがスローされます

<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> 

は、ここで私が変換しようとしているサンプルSVGだ

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) 

はバティックはCSS3の構文でうまく動作するように取得するための簡単な方法があります - またはストローク不透明度などを手動で設定するための解析関数を作成しますか?

+0

それはオープンソースです。それをダウンロードしてサポートを追加してください。 –

+0

https://xmlgraphics.apache.org/batik/でdocリストを確認すると、彼らもメーリングリスト –

答えて

1

バティックがrgbaのカラー値をサポートしていない場合は、回避策としてstroke-opacityおよび/またはfill-opacityを適切に使用してください。

ので、代わりの:

あなたが使用することができます
stroke="rgba(0, 0, 0, 0.298039)" 

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

を持っています。これは私が使っている解決法のようですが、他にもcss3の機能があります置き換えてください。 – dwjohnston

関連する問題