How do I superimpose one SVG image on another using Apache Batik?の指示に従いました (他のソースからの追加の詳細を含む) 。
今まで、ほとんどの場合、物事は完璧に機能しています。しかし、今では、個々の svg ドキュメント (画像) のそれぞれにクリップ パスがあります。2 つ以上の画像を配置すると、2 番目のパスのみが出力に保存されます。他のすべてのクリップ パスが失われます。各画像のクリップ パスを保持するために必要なことはありますか? SVG 出力を確認したところ、クリップ パスが 1 つしか表示されませんでした。私のコードは次のようになります。
public void PlaceSVGImage(SVGDocument a, Point C)
{
String xatt = String.format("%f", C.X);
String yatt = String.format("%f", C.Y);
org.w3c.dom.Node ae = SVGC.SVGD.importNode(a.getDocumentElement(), true);
((Element) ae).removeAttribute("viewBox");
((Element) ae).setAttribute("x", xatt);
((Element) ae).setAttribute("y", yatt);
if (FIRSTCHILD)
{
SVGC.SVGD.getDocumentElement().appendChild(ae);
FIRSTCHILD = false;
NullNode = ae;
}
else
{
SVGC.SVGD.getDocumentElement().insertBefore(ae, NullNode);
}
}
次に、標準コードを使用して SVGC.SVGD を表示します。
任意の洞察をいただければ幸いです。