使用Inkscape将.svg转换为.dxf?

4

为了一个项目,我需要自动将大量的 .svg 文件转换为 .dxf 文件,以便进一步处理。

情况:一个包含许多 .svg 文件的目录,应该将它们转换为 .dxf(无论 .dxf 文件是在同一目录中还是在子文件夹中,.dxf 文件名都应该与 .svg 文件名相同)

我可以使用 Inkscape 图形用户界面完成这个任务,并且可用于将 .dxf 文件导入 CAD 程序,但正如上面提到的,我需要自动化这个过程。 (到目前为止,我只用 Python 写过代码)

我的想法是通过命令行在 Inkscape 中打开这些文件。可以使用以下代码通过命令行将其导出为 png 格式:

from subprocess import call
import os

svg_dir = "C:\\temp\\layers\\"
files = [svg_dir + i for i in os.listdir(svg_dir) if ".svg" in i]

dir = r"C:\Program Files\Inkscape"
for i in files:

    cmdline = "Inkscape -z -f "+ i +" -e "+ i + ".png"
    rc = call("start cmd /K " + cmdline, cwd=dir, shell=True) 

但我不太了解Inkscape扩展。我只知道我需要在扩展目录中有dxf_outlines.py/.inx。我总是需要相同的导出选项,所以我能否只重写Python代码,然后通过Inkscape命令运行它呢?

还是说有没有不需要像Python中的Inkscape这样的额外软件的解决方案?据我所见,好像没有。

2个回答

1
我提出了一个稍微不同的解决方案,但仍然找到了所需的.dxf文件。我在Python中将我的图形保存为.eps文件,并可以使用pstoedit的一条命令行轻松转换它们。
def eps_to_dxf():
    eps_list = [i for i in os.listdir(eps_directory) if ".eps" in i]
    work_directory = "C:\Program Files\pstoedit"

    for i in eps_list:
        input_file = i.split(".")[0]
        output_file = input_file + ".dxf"
        cmdline = "pstoedit -f dxf_s " + eps_directory + i + " " + eps_directory + output_file
        subprocess.check_call(cmdline, cwd=work_directory, shell=True)

0

这是一个Linux命令,使用Inkscape将svg文件转换为dxf

python /usr/share/inkscape/extensions/dxf12_outlines.py --output="output.dxf" "input.svg"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接