希望这是我做错的,但如果我的怀疑是正确的,而且这是一个错误,我会提交一个错误报告。
我有一个 svg 文件(最初由 matplotlib 绘制,但我怀疑这不相关)。我只缩放了一些路径的高度(并剪切了它们),现在当我在 evince、gimp 或 gv *(但不是 inkscape)中加载 pdf 时,笔触宽度也会按高度缩放,尽管我没有缩放时刻度笔划影响选定。
在 inkscape 中打开 pdf 并导出为 .png:
在 Gimp 中打开相同的 pdf:
左侧也可以看到一些未缩放的路径。
我能做些什么吗?我确实需要处理 svg,而不是返回数据处理并修改 matplotlib 中的代码,并且我需要通过键入而不是拖动来按整数缩放。
编辑:*我刚刚在 Windows 虚拟机上安装了 Foxit - 除了 Inkscape 之外其他都一样
编辑2:这是一个显示问题的最小 svg(真的,没有 SVG 上传?):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="86.874992"
height="33.008114"
viewBox="0 0 69.499992 26.406493"
id="svg2">
<metadata
id="metadata1778">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs4"
style="stroke-linecap:square;stroke-linejoin:round">
<style
type="text/css"
id="style6" />
</defs>
<path
d="m 73.4966,215.574 2.6784,0.104 5.9148,0.341 11.9412,-0.054 21.874,-0.079 9.597,-0.184 4.911,-0.321 2.901,-0.402 4.018,-0.785 0.446,-0.378 0.447,-0.689 0.446,-1.086 0.558,-2.019 0.67,-3.471 0.781,-5.406 1.227,-10.454"
transform="translate(-72.968769,-190.125)"
clip-path="url(#p19969a3f5c)"
id="path722"
style="fill:#ff0000;stroke:#0000ff;stroke-width:1;stroke-linecap:square;stroke-linejoin:round" />
<defs
id="defs1765">
<clipPath
id="p19969a3f5c">
<rect
width="446.39999"
height="101.64706"
x="72"
y="165.17647"
id="rect1774"
style="stroke-linecap:square;stroke-linejoin:round" />
</clipPath>
</defs>
</svg>
*为了演示,仅拉伸高度,然后保存为 pdf 并在您选择的查看器中打开(inkscape 除外)。
请注意,我添加了填充,以证明它只是一条路径,而不是被缩放的对象
更多新信息 - 如果我删除剪辑,它会按应有的方式缩放*
答案1
最后我按照评论中说的做了,但我仍然认为一定有一个真正的解决方案。我只需要处理一个文件中的 4 条路径(我实际上以前见过这种情况,但比例的长宽比没有那么糟糕,我没有时间担心它)。
这是我做的:
- 记下我想要编辑的路径的对象 ID
- 在 jEdit 中打开 .svg
- 依次查找每条路径
- 致力于
d
属性 - 将“ ”替换为“\n”
- 复制到 libreoffice calc
- 将第二列(除前两行(其中只有第二行是数字)和最后一行)乘以 20(我的缩放因子)
- 返回 jEdit
- 将“\t”替换为“,”(“m”之后除外,因为它刚刚被删除
- 将“\n”替换为“”
- 粘贴覆盖原始路径