Inkscape尝试将DXF作为SVG打开

时间:2018-08-06 17:21:56

标签: docker inkscape

我正在尝试自动将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导入对话框。

1 个答案:

答案 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

该对话框似乎使用默认参数,因此您可能需要对其进行一些调整以适应您的图形。