Hi, I need to paint caret for editing text on JSVGCanvas. I haven't found method getCaretShape() in batik, so I'm using java.awt.font.TextLayout. It is how I do it:
// family, style, size I get from DOM Font font = new Font(family, style, size); TextLayout textLayout = new TextLayout(text, font, new FontRenderContext(new AffineTransform(), true, false)); // Mark is calculated correctly by TextPainter.selectAt Shape caret = textLayout.getCaretShapes(mark.getCharIndex())[0]; // x and y are textnode's coordinates AffineTransform at = new AffineTransform(); at.translate(x, y); caret = at.createTransformedShape(shape); Caret is calculated incorrectly. It has some error. I'm sure batik has another solution. How can I solve this problem?