浏览代码

adjusted renderElement

zsviczian 1 年之前
父节点
当前提交
49f2c88978
共有 1 个文件被更改,包括 5 次插入3 次删除
  1. 5 3
      src/renderer/renderElement.ts

+ 5 - 3
src/renderer/renderElement.ts

@@ -985,6 +985,8 @@ export const renderElementToSvg = (
         renderConfig,
         renderConfig,
       );
       );
 
 
+      const scaleX = element.scale?.[0] || 1;
+      const scaleY = element.scale?.[1] || 1;
       // render embeddable element + iframe
       // render embeddable element + iframe
       const embeddableNode = roughSVGDrawWithPrecision(
       const embeddableNode = roughSVGDrawWithPrecision(
         rsvg,
         rsvg,
@@ -996,7 +998,7 @@ export const renderElementToSvg = (
         "transform",
         "transform",
         `translate(${offsetX || 0} ${
         `translate(${offsetX || 0} ${
           offsetY || 0
           offsetY || 0
-        }) rotate(${degree} ${cx} ${cy})`,
+        }) rotate(${degree} ${cx} ${cy}) scale(${scaleX}, ${scaleY})`,
       );
       );
       while (embeddableNode.firstChild) {
       while (embeddableNode.firstChild) {
         embeddableNode.removeChild(embeddableNode.firstChild);
         embeddableNode.removeChild(embeddableNode.firstChild);
@@ -1027,8 +1029,8 @@ export const renderElementToSvg = (
           SVG_NS,
           SVG_NS,
           "foreignObject",
           "foreignObject",
         );
         );
-        foreignObject.style.width = `${element.width}px`;
-        foreignObject.style.height = `${element.height}px`;
+        foreignObject.style.width = `${element.width / scaleX}px`;
+        foreignObject.style.height = `${element.height / scaleY}px`;
         foreignObject.style.border = "none";
         foreignObject.style.border = "none";
         const div = foreignObject.ownerDocument!.createElementNS(SVG_NS, "div");
         const div = foreignObject.ownerDocument!.createElementNS(SVG_NS, "div");
         div.setAttribute("xmlns", "http://www.w3.org/1999/xhtml");
         div.setAttribute("xmlns", "http://www.w3.org/1999/xhtml");