对于一个项目,我需要自动转换大量的.svg-files到.dxf-files进行进一步的处理。
情况:一个目录中有大量的.svg-files,应该转换成.dxf (不管.dxf文件在同一个目录还是在一个子文件夹中,dxf名称都应该是svg名称)
我可以使用Inkscape GUI做到这一点,Inkscape GUI也可以在CAD程序中导入.dxf文件,但如前所述,我需要将其自动化。(到目前为止,我只用Python编写)。
我的想法是:我通过命令行打开Inkscape中的文件。可以通过具有以下代码的命令在png-format中导出:
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?据我所知没有。
发布于 2017-09-23 00:41:28
我想出了一个稍有不同的解决方案,但仍然找到了所需的.dxf-files。
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)https://stackoverflow.com/questions/46330122
复制相似问题