保存到 PDF 的缩放路径呈现为除了 Inkscape 之外的所有内容中的笔触宽度都已缩放

保存到 PDF 的缩放路径呈现为除了 Inkscape 之外的所有内容中的笔触宽度都已缩放

希望这是我做错的,但如果我的怀疑是正确的,而且这是一个错误,我会提交一个错误报告。

我有一个 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”替换为“”
  • 粘贴覆盖原始路径

相关内容