Merge pull request #8796 from timvandermeij/svg-text-rise

Implement text rise for the SVG back-end
This commit is contained in:
Rob Wu 2017-08-26 19:02:51 +02:00 committed by GitHub
commit 7cc7260634

View File

@ -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() {
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);