在保留图层的同时在 Inkscape CLI 中将 DXF 转换为 SVG

Convert DXF to SVG in Inkscape CLI while keeping layers

在 Inkscape GUI 中,有一个很棒的功能,它让我 'save as -> file type -> layers as individual SVGs'(最下面的最后一个)。有什么方法可以从 CLI 做同样的事情吗?

我目前拥有的:

inkscape -z -l output.svg input.dxf

这会将 'input.dxf' 转换为 'output.svg',但我无法在该 SVG 中找到图层。

在 Inkscape 社区的帮助下(特别感谢@rindolf),我想出了一个解决方案。

先决条件

  • Python 2.7(不适用于较新的版本)
  • lxml ("pip install lxml")

调整 Inkscape

将 "Inkscape\share\extensions" 中 "tar_layers.py" 第 36 行的 'GROUP = "{http://www.w3.org/2000/svg}g"' 更改为 'GROUP = "g"'。必须这样做,因为您的层将没有该命名空间。

将 DXF 转换为多个 SVG(每层一个)

  1. 从 DXF 创建 Inkscape SVG:

    python share/extensions/dxf_input.py input.dxf > output.svg

  2. 将图层导出为 tar:

    中的单个 SVG

    python share/extensions/tar_layers.py output.svg > output.tar

现在,您应该有一个 'output.tar' 文件,其中包含 Inkscape SVG。如果您需要常规 SVG,则必须像这样导出它们:

inkscape -z -l output.svg input.svg

有关 the Inkscape CLI 的更多信息。