Julien Lacour created FOP-3135: ---------------------------------- Summary: SVG <tspan> content is displayed on a single line without spaces Key: FOP-3135 URL: https://issues.apache.org/jira/browse/FOP-3135 Project: FOP Issue Type: Bug Components: image/svg Reporter: Julien Lacour
We have found an issue in FOP when transforming PDFs with SVGs containing <tspan> with multiple @x and/or @y attributes values. The problem is located in org.apache.fop.svg.PDFTextPainter.writeGlyphs(FOPGVTGlyphVector, GeneralPath), the positions given by x and y are never used when set. A possible fix for this issue is the following: {code:java} for (int i = 0, n = gv.getNumGlyphs(); i < n; i++) { int gc = gv.getGlyphCode(i); int[] pa = ((i > dp.length) || (dp[i] == null)) ? paZero : dp[i]; if (gv.getGlyphPosition(i) != null) { Point2D gp = gv.getGlyphPosition(i); double x = gp.getX() - initialPos.getX(); double y = -(gp.getY() - initialPos.getY()); double xd = x - xoLast; double yd = y - yoLast; textUtil.writeTd(xd, yd); textUtil.writeTj((char) gc, true, false); xc = x + pa[2]; yc = y + pa[3]; xoLast = x; yoLast = y; } else { double xo = xc + pa[0]; double yo = yc + pa[1]; double xa = f.getWidth(gc); double ya = 0; double xd = (xo - xoLast) / 1000f; double yd = (yo - yoLast) / 1000f; textUtil.writeTd(xd, yd); textUtil.writeTj((char) gc, true, false); xc += xa + pa[2]; yc += ya + pa[3]; xoLast = xo; yoLast = yo; } } {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)