Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Illustrator中带有笔划的SVG符号大小错误_Svg_Adobe Illustrator - Fatal编程技术网

Illustrator中带有笔划的SVG符号大小错误

Illustrator中带有笔划的SVG符号大小错误,svg,adobe-illustrator,Svg,Adobe Illustrator,我在一个网站上生成了一个SVG文件,它应该被导入到Ilustrator中。我使用元素来存储形状定义,并使用“图纸”上的元素引用它。用户可以设置形状的大小,导入到Adobe Illustrator时,形状的大小是否完全相同非常重要。除非我添加一个笔划,否则它会起作用 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//E

我在一个网站上生成了一个SVG文件,它应该被导入到Ilustrator中。我使用
元素来存储形状定义,并使用“图纸”上的
元素引用它。用户可以设置形状的大小,导入到Adobe Illustrator时,形状的大小是否完全相同非常重要。除非我添加一个笔划,否则它会起作用

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg id="SvgjsSvg1000" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev/svgjs" width="210mm" height="297mm" viewBox="0 0 210 297" viewbox="0 0 210 297">
    <defs id="SvgjsDefs1001">
        <symbol id="shape_id70" preserveAspectRatio="xMinYMin meet" viewBox="0 0 27.841039657592773 12.2083101272583">
            <path id="SvgjsPath1030" d="M26.4405 13.067C25.685728 11.72066 22.49458 8.90142 20.73442 7.678030000000001C22.99088 7.6388854 23.85819 7.6146637 28.738950000000003 7.456081C26.298620000000003 6.628644 23.737080000000002 5.904501 21.418080000000003 4.973881C23.937200000000004 4.5081560000000005 26.519460000000002 4.085806000000001 28.376120000000004 3.7947010000000008C28.376120000000004 3.7946453179000006 19.370760000000004 2.7013810000000005 8.358420000000002 4.414499000000001L9.412540000000002 1.364679000000001L6.497860000000001 3.520859000000001L4.442800000000001 0.858699000000001L4.324531000000001 4.464059000000001L0.897911000000001 5.542179000000001L4.249861000000001 6.913239000000001L4.236664300000001 10.198599000000002L6.192894300000001 7.622079000000001L9.099554300000001 8.802649L8.143547300000002 6.432539C12.463087300000002 6.813516 22.5756473 8.818239 26.440547300000002 13.067009Z" fill="none"></path>
        </symbol>
    </defs>
    <use id="SvgjsUse1034" xlink:href="#shape_id70" x="0" y="0" width="50"></use>
</svg>

这在浏览器和Illustrator中都很好。但是当我添加属性时,
stroke width=“0.1”stroke=“#000”
。在Illustrator中,形状的大小更改为48.951。但在浏览器中仍然是50。我尝试将这些属性添加到
元素中,结果相同

我知道SVG标准没有任何属性可以控制如何渲染笔划。我知道有一个关于SVG未来版本的笔划对齐属性的讨论。但是浏览器还不支持,Adobe Illustrator也不支持


因此,我的问题是:有没有办法调整SVG,以便Illustrator能够以
元素中的宽度属性设置的大小渲染形状,而不管笔划设置如何,
上的
宽度
值应该对
没有影响,因为您的符号没有
viewBox
属性。如果没有viewBox,则只有
x
y
属性可以执行任何操作


另外,请注意,我们在过去看到过一些关于S.O.的问题,抱怨Illustrator的SVG导入过滤器中存在错误。如果
工作正常,那就太好了。但是,一般来说,您可能会发现保持SVG结构简单并避免使用更高级的SVG功能可能是一个好主意。

您的
上的
宽度值应该对您的
没有影响,因为您的符号没有
viewBox
属性。如果没有viewBox,则只有
x
y
属性可以执行任何操作


另外,请注意,我们在过去看到过一些关于S.O.的问题,抱怨Illustrator的SVG导入过滤器中存在错误。如果
工作正常,那就太好了。但是,一般来说,您可能会发现保持SVG结构简单并避免使用更高级的SVG功能可能是一个好主意。

如果您认为在inkscape中发现了错误,最好向inkscape报告。如果您认为在inkscape中发现了错误,最好向inkscape报告,我很抱歉。在简化源代码的同时,我删除了太多。我编辑了我的问题并添加了viewBox属性。这只是一个错误。我知道当我在定义中有一个形状(比如在一个组中,而不是在一个符号中)时,我也可以使用reference()。但在这种情况下,我需要调整定义的大小,而这正是我想要避免的。然后,如果是这样的话,它听起来肯定像Illustrator中的一个bug。你可以试着向他们报告。与此同时,你可能不得不使用你建议的替代方案,一个小组。您不必调整定义的大小。您始终可以在
元素上使用
变换。我很抱歉。在简化源代码的同时,我删除了太多。我编辑了我的问题并添加了viewBox属性。这只是一个错误。我知道当我在定义中有一个形状(比如在一个组中,而不是在一个符号中)时,我也可以使用reference()。但在这种情况下,我需要调整定义的大小,而这正是我想要避免的。然后,如果是这样的话,它听起来肯定像Illustrator中的一个bug。你可以试着向他们报告。与此同时,你可能不得不使用你建议的替代方案,一个小组。您不必调整定义的大小。您始终可以在
元素上使用
变换。