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

在Inkscape CLI中将DXF转换为SVG,同时保留图层,svg,inkscape,dxf,Svg,Inkscape,Dxf,在Inkscape GUI中,有一个很棒的特性,让我 “另存为->文件类型->层作为单个SVG”(底部的最后一个)。是否有任何方法可以从CLI执行相同的操作 到目前为止,我所拥有的: inkscape -z -l output.svg input.dxf 这将“input.dxf”转换为“output.svg”,但我无法在这个svg中找到层。在Inkscape社区的帮助下(特别感谢@rindolf),我可以想出一个解决方案 先决条件 Python2.7(在较新版本上不起作用) lxml(“p

在Inkscape GUI中,有一个很棒的特性,让我 “另存为->文件类型->层作为单个SVG”(底部的最后一个)。是否有任何方法可以从CLI执行相同的操作

到目前为止,我所拥有的:

inkscape -z -l output.svg input.dxf

这将“input.dxf”转换为“output.svg”,但我无法在这个svg中找到层。

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

先决条件

  • Python2.7(在较新版本上不起作用)
  • lxml(“pip安装lxml”)
调整Inkscape

将“Inkscape\share\extensions”中“tar_layers.py”第36行上的“GROUP=“{}g”更改为“GROUP=”g“。必须这样做,因为您的层将没有该名称空间

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

  • 从DXF创建Inkscape SVG:

    python共享/extensions/dxf_input.py input.dxf>output.svg

  • 将层导出为tar中的单个svg:

    python共享/扩展/tar_layers.py output.svg>output.tar

  • 现在,您应该有一个“output.tar”文件,其中包含Inkscape SVG。如果需要常规SVG,则必须按如下方式导出:

    inkscape -z -l output.svg input.svg
    
    有关的更多信息