# HG changeset patch # User Thomas Junk # Date 1566288621 -7200 # Node ID b8d578e42b4b4d6b202f8d69bc149434c0d4a2b6 # Parent 849d5ca7cc039a29e70d24b4ca9bd0891b4fc783 pdfprint: generate a new transform object instead of manipulating the given one. See https://github.com/d3/d3-zoom#zoomTransform diff -r 849d5ca7cc03 -r b8d578e42b4b client/src/components/gauge/HydrologicalConditions.vue --- a/client/src/components/gauge/HydrologicalConditions.vue Mon Aug 19 14:23:08 2019 +0200 +++ b/client/src/components/gauge/HydrologicalConditions.vue Tue Aug 20 10:10:21 2019 +0200 @@ -822,17 +822,12 @@ let t = d3.event.transform; // Set the last zoom level and recalculate x,y for pdf-export if (zoomLevel) { - t.x = (zoomLevel.x * dimensions.width) / zoomLevel.width; - t.k = zoomLevel.k; - t.y = zoomLevel.y; - scaleForZoom(t); - // reset zoomming after drawing for pdf - t.k = 1; - t.x = 0; - t.y = 0; - } else { - scaleForZoom(t); + const tx = (zoomLevel.x * dimensions.width) / zoomLevel.width; + const k = zoomLevel.k; + const ty = zoomLevel.y; + t = d3.zoomIdentity.translate(tx, ty).scale(k); } + scaleForZoom(t); }); zoom.on("start", () => { svg.select(".chart-dot").style("opacity", 0); diff -r 849d5ca7cc03 -r b8d578e42b4b client/src/components/gauge/Waterlevel.vue --- a/client/src/components/gauge/Waterlevel.vue Mon Aug 19 14:23:08 2019 +0200 +++ b/client/src/components/gauge/Waterlevel.vue Tue Aug 20 10:10:21 2019 +0200 @@ -948,19 +948,13 @@ if (d3.event.sourceEvent && d3.event.sourceEvent.type === "brush") return; // ignore zoom-by-brush let t = d3.event.transform; - // Set the last zoom level and recalculate x,y for pdf-export if (zoomLevel) { - t.x = (zoomLevel.x * dimensions.width) / zoomLevel.width; - t.k = zoomLevel.k; - t.y = zoomLevel.y; - scaleForZoom(t); - // reset zoomming after drawing for pdf - t.k = 1; - t.x = 0; - t.y = 0; - } else { - scaleForZoom(t); + const tx = (zoomLevel.x * dimensions.width) / zoomLevel.width; + const k = zoomLevel.k; + const ty = zoomLevel.y; + t = d3.zoomIdentity.translate(tx, ty).scale(k); } + scaleForZoom(t); }); zoom.on("start", () => { svg.select(".chart-dot").style("opacity", 0);