The spec says you can put <text> into a <clipPath>, but the
file below seems not to clip.

Also, an attempt to fill text with a linear gradient produces the
error messages shown below. I'm using Batik built from CVS on
12 July 2001, with

java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build
Blackdown-1.3.0-FCS)
Java HotSpot(TM) Client VM (build Blackdown-1.3.0-FCS, mixed mode)

on Linux Mandrake 7.2.

SVG file:
=======
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN"
   "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd";>

<svg width="310px" height="310px" viewBox="0 0 310 310"
        preserveAspectRatio="xMinYMin meet">

<defs>
<clipPath id="textClip">
        <text id="text1" font-size="48pt" x="0" y="0"
                transform="rotate(60)" fill="black" stroke="black">CLIP</text>
</clipPath>

<linearGradient id="lgrad">
        <stop offset="0" stop-color="#009900"/>
        <stop offset="1" stop-color="#ccffcc"/>
</linearGradient>

<g id="shapes">
<circle cx="20" cy="20" r="15" fill="#666"/>
<rect x="40" y="10" width="30" height="80" fill="#ccc"/>
<polygon points="0 35, 50 50, 10 90" stroke="black" stroke-width="2"
        fill="none"/>
</g>

</defs>

<use xlink:href="#shapes" clip-path="url(#textClip)"/>

<rect x="100" y="30" width="40" height="40"
        fill="url(#lgrad)"/>

<text x="150" y="30" font-size="24pt"
        fill="url(#lgrad)">Fill</text>

<g transform="translate(0,150)">
        <use xlink:href="#shapes"/>
        <use xlink:href="#text1"/>
</g>

</svg>
===========================================
Error produced when filling text with gradient:

java.awt.geom.NoninvertibleTransformException: Determinant is 0
        at java.awt.geom.AffineTransform.createInverse(AffineTransform.java:1898)
        at 
org.apache.batik.ext.awt.MultipleGradientPaintContext.<init>(MultipleGradientPaintContext.java:241)
        at 
org.apache.batik.ext.awt.LinearGradientPaintContext.<init>(LinearGradientPaintContext.java:83)
        at 
org.apache.batik.ext.awt.LinearGradientPaint.createContext(LinearGradientPaint.java:305)
        at sun.java2d.pipe.AlphaPaintPipe.startSequence(AlphaPaintPipe.java:46)        
 at sun.java2d.pipe.SpanClipRenderer.startSequence(SpanClipRenderer.java:59)
        at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:79)
        at sun.java2d.pipe.DuctusShapeRenderer.fill(DuctusShapeRenderer.java:52)       
 at sun.java2d.pipe.ValidatePipe.fill(ValidatePipe.java:115)
        at sun.java2d.SunGraphics2D.fill(SunGraphics2D.java:1616)
        at org.apache.batik.gvt.font.AWTGVTGlyphVector.draw(AWTGVTGlyphVector.java:559)
        at org.apache.batik.gvt.text.GlyphLayout.draw(GlyphLayout.java:113)
        at 
org.apache.batik.gvt.renderer.StrokingTextPainter.paintTextRuns(StrokingTextPainter.java:652)
        at 
org.apache.batik.gvt.renderer.StrokingTextPainter.paint(StrokingTextPainter.java:89)
        at org.apache.batik.gvt.TextNode.primitivePaint(TextNode.java:323)
        at 
org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:398)
        at org.apache.batik.gvt.TextNode.paint(TextNode.java:304)
        at 
org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:129)
        at 
org.apache.batik.gvt.CanvasGraphicsNode.primitivePaint(CanvasGraphicsNode.java:61)
        at 
org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:398)
        at 
org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:129)
        at 
org.apache.batik.gvt.filter.GraphicsNodeRed8Bit.genRect(GraphicsNodeRed8Bit.java:134)
        at 
org.apache.batik.ext.awt.image.rendered.AbstractTiledRed.copyToRasterByBlocks(AbstractTiledRed.java:633)
        at 
org.apache.batik.ext.awt.image.rendered.AbstractTiledRed.copyData(AbstractTiledRed.java:252)
        at 
org.apache.batik.ext.awt.image.rendered.TranslateRed.copyData(TranslateRed.java:97)
        at org.apache.batik.ext.awt.image.rendered.PadRed.copyData(PadRed.java:87)
        at 
org.apache.batik.gvt.renderer.StaticRenderer.repaint(StaticRenderer.java:374)
        at org.apache.batik.swing.gvt.GVTTreeRenderer.run(GVTTreeRenderer.java:106)
java.lang.IllegalArgumentException: transform should beinvertible
        at 
org.apache.batik.ext.awt.LinearGradientPaint.createContext(LinearGradientPaint.java:320)
        at sun.java2d.pipe.AlphaPaintPipe.startSequence(AlphaPaintPipe.java:46)        
 at sun.java2d.pipe.SpanClipRenderer.startSequence(SpanClipRenderer.java:59)
        at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:79)
        at sun.java2d.pipe.DuctusShapeRenderer.fill(DuctusShapeRenderer.java:52)       
 at sun.java2d.pipe.ValidatePipe.fill(ValidatePipe.java:115)
        at sun.java2d.SunGraphics2D.fill(SunGraphics2D.java:1616)
        at org.apache.batik.gvt.font.AWTGVTGlyphVector.draw(AWTGVTGlyphVector.java:559)
        at org.apache.batik.gvt.text.GlyphLayout.draw(GlyphLayout.java:113)
        at 
org.apache.batik.gvt.renderer.StrokingTextPainter.paintTextRuns(StrokingTextPainter.java:652)
        at 
org.apache.batik.gvt.renderer.StrokingTextPainter.paint(StrokingTextPainter.java:89)
        at org.apache.batik.gvt.TextNode.primitivePaint(TextNode.java:323)
        at 
org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:398)
        at org.apache.batik.gvt.TextNode.paint(TextNode.java:304)
        at 
org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:129)
        at 
org.apache.batik.gvt.CanvasGraphicsNode.primitivePaint(CanvasGraphicsNode.java:61)
        at 
org.apache.batik.gvt.AbstractGraphicsNode.paint(AbstractGraphicsNode.java:398)
        at 
org.apache.batik.gvt.CompositeGraphicsNode.primitivePaint(CompositeGraphicsNode.java:129)
        at 
org.apache.batik.gvt.filter.GraphicsNodeRed8Bit.genRect(GraphicsNodeRed8Bit.java:134)
        at 
org.apache.batik.ext.awt.image.rendered.AbstractTiledRed.copyToRasterByBlocks(AbstractTiledRed.java:633)
        at 
org.apache.batik.ext.awt.image.rendered.AbstractTiledRed.copyData(AbstractTiledRed.java:252)
        at 
org.apache.batik.ext.awt.image.rendered.TranslateRed.copyData(TranslateRed.java:97)
        at org.apache.batik.ext.awt.image.rendered.PadRed.copyData(PadRed.java:87)
        at 
org.apache.batik.gvt.renderer.StaticRenderer.repaint(StaticRenderer.java:374)
        at org.apache.batik.swing.gvt.GVTTreeRenderer.run(GVTTreeRenderer.java:106)

---
J. David Eisenberg  http://catcode.com/


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

Reply via email to