.svg到.dxf(使用Inkscape?)

时间:2017-09-20 19:16:23

标签: python svg command inkscape dxf

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

情况:一个目录中包含大量.svg - 应转换为.dxf的文件(无论.dxf文件是在同一个目录中还是在子文件夹中,dxf名称都应该是svg名称)

我可以使用Inkscape GUI来做到这一点,它也适用于导入CAD程序中的.dxf文件,但如上所述,我需要自动执行此操作。 (到目前为止,我只用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这样的额外软件的情况下会有任何解决方案吗?据我所见,没有。

1 个答案:

答案 0 :(得分: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)