Browse Source

Implement text rise for the SVG back-end

The property and the setter for text rise were already present, but they
were never used or called. This patch completes the implementation by
calling the setter when the operator is encountered and by using the
text rise value when rendering text.
Tim van der Meij 8 years ago
parent
commit
cfc052a515
No known key found for this signature in database
GPG Key ID: 8C3FD2925A5F2762
  1. 15
      src/display/svg.js

15
src/display/svg.js

@ -562,6 +562,9 @@ SVGGraphics = (function SVGGraphicsClosure() { @@ -562,6 +562,9 @@ SVGGraphics = (function SVGGraphicsClosure() {
this.setTextMatrix(args[0], args[1], args[2],
args[3], args[4], args[5]);
break;
case OPS.setTextRise:
this.setTextRise(args[0]);
break;
case OPS.setLineWidth:
this.setLineWidth(args[0]);
break;
@ -782,9 +785,17 @@ SVGGraphics = (function SVGGraphicsClosure() { @@ -782,9 +785,17 @@ SVGGraphics = (function SVGGraphicsClosure() {
current.tspan.setAttributeNS(null, 'fill', current.fillColor);
}
// Include the text rise in the text matrix since the `pm` function
// creates the SVG element's `translate` entry (work on a copy to avoid
// altering the original text matrix).
let textMatrix = current.textMatrix;
if (current.textRise !== 0) {
textMatrix = textMatrix.slice();
textMatrix[5] += current.textRise;
}
current.txtElement.setAttributeNS(null, 'transform',
pm(current.textMatrix) +
' scale(1, -1)');
pm(textMatrix) + ' scale(1, -1)');
current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve');
current.txtElement.appendChild(current.tspan);
current.txtgrp.appendChild(current.txtElement);

Loading…
Cancel
Save