python - .svg到.dxf(使用Inkscape?)

对于一个项目,我需要自动将大量的.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这样的额外软件,会有什么解决方案吗?据我所见没有。

最佳答案

我想出了一个稍有不同的解决方案,但仍然找到了所需的.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)

本文翻译自 https://stackoverflow.com/questions/46330122/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 python svg command inkscape dxf


相关文章:

python - WorkerLostError('工人过早退出:信号15(SIGTERM)。')

python - python快速编写变量的名称和值

python - 获取首次出版年份Google Scholar

html - SVG动画在结束时未正确关闭(小间隙持续存在)

c - 每行具有多个命令的命令行解释器

python - 具有其他列条件的新列

python - 在python中获取svg文本大小

javascript - 如何检查DOM节点是否从构造函数继承?

linux - 根shrc的权限被拒绝

javascript - 正则表达式匹配以提取命令