我正在尝试自动将Autocad DXF转换为SVG文件,发现Inkscape CLI可用于此目的。
我正在使用的命令是:
inkscape -z -l output.svg -f input.dxf
-z:不带gui | -l:导出普通SVG | -f:输入文件
当我在Ubuntu 18.04上运行此命令时,转换成功,但是,当我在docker容器(源自Alpine + RUN apk --no-cache add inkscape
)中运行此命令时,出现以下错误:
input.dxf:1:解析器错误:预期起始标签,找不到“ <” 0 ^
**(inkscape:18):警告**:无法打开指定的文档input.dxf(不存在或无效的SVG文件)
Inkscape似乎试图将DXF文件作为SVG文件打开,但失败了,因为它希望XML像输入一样(DXF文件不包含类似XML的标签)。
我尝试通过以下方式将其转换为PDF:
inkscape -z -A output.pdf -f input.dxf
-z:不带gui | -A:导出PDF | -f:输入文件
但是错误是完全相同的。
有人知道我如何进一步调试这种情况吗?
更新
我还必须提到,通过删除<param />
块来修改文件dxf_input.inx
来禁用DXF导入对话框。
答案 0 :(得分:0)
您的Inkscape版本是什么?
当我尝试通过命令行导入dxf文件时,出现一个图形用户界面对话框,询问我有关导入参数的信息。禁止GUI在这里不起作用。这需要一个GUI。
-z参数在这里不起作用,并且(似乎)被忽略了(这是Inkscape 0.92.x,稳定的开发分支)。对话框打开,单击“确定”,然后创建输出文件。
我认为这不会像您预期的那样起作用。
选项1:
有一个脚本dxf2svg,似乎可以从sourceforge和github上的多个来源获得,
选项2:
或者您可以使用直接执行dxf导入的Inkscape扩展名:
Convert DXF to SVG in Inkscape CLI while keeping layers
该对话框似乎使用默认参数,因此您可能需要对其进行一些调整以适应您的图形。