在保留图层的同时在 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(每层一个)
从 DXF 创建 Inkscape SVG:
python share/extensions/dxf_input.py input.dxf > output.svg
将图层导出为 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 的更多信息。
在 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(每层一个)
从 DXF 创建 Inkscape SVG:
python share/extensions/dxf_input.py input.dxf > output.svg
将图层导出为 tar:
中的单个 SVGpython share/extensions/tar_layers.py output.svg > output.tar
现在,您应该有一个 'output.tar' 文件,其中包含 Inkscape SVG。如果您需要常规 SVG,则必须像这样导出它们:
inkscape -z -l output.svg input.svg
有关 the Inkscape CLI 的更多信息。