我正在寻找一些允许我将 dxf 转换为任何其他格式的命令行工具。
答案1
有许多矢量绘图程序不同程度地支持 DXF 文件,并具有命令行转换功能,包括dia
、、inkscape
甚至libreoffice
。
直径似乎支持 dxf 输入和 png 输出,例如
dia jcsample.dxf -e jcsample.png
或者,使用明确的输出维度,
dia jcsample.dxf -s 744x1052 -e jcsample.png
然而,在第一种情况下,结果是一个空文件,而在第二种情况下,结果已损坏,就我尝试的示例文件而言 - 您可能更幸运。
墨景似乎也支持相同的功能,例如
inkscape -f jcsample.dxf --export-png=jcsample.png
但结果还是不可读。做过Inkscape 的工作首先是转换为 Encapsulated PostScript
inkscape -f jcsample.dxf --export-eps=jcsample.eps
然后将 eps 转换为 png 或 jpeg,例如使用 Ghostscript
gs -sDEVICE=png16m -dNOPAUSE -dBATCH -dSAFER -sOutputFile=jcsample.png jcsample.eps
或者
gs -sDEVICE=jpeg -dJPEGQ=100 -dNOPAUSE -dBATCH -dSAFER -r100 -sOutputFile=jcsample.jpg jcsample.eps
[请注意,同样的技巧似乎不适用于
dia
,即使它也支持 PostScript 输出]缺点
inkscape
是 dxf 导入过滤器会弹出一个对话框来确认默认的缩放和编码,这使得它不是真正的非交互式的:据我所知,目前还没有办法阻止这种情况,尽管有一个出色的功能请求对于它(添加-z
或--without-gui
开关似乎没有帮助)。自由办公室似乎可以直接对 png 或 jpg 进行操作
libreoffice --headless --convert-to png jcsample.dxf libreoffice --headless --convert-to jpg jcsample.dxf
然而,在同一个样本文件中,生成的图像被缩放以适合纵向页面的中央;同样,解决方案可能是使用中间矢量格式,例如 pdf
libreoffice --headless --convert-to pdf jcsample.dxf pdfcrop jcsample.pdf gs -sDEVICE=png16m -dNOPAUSE -dBATCH -dSAFER -sOutputFile=jcsample.png jcsample-crop.pdf
抱歉,这不是一个适合所有人的答案 - 但希望它能给你提供一些可以尝试的东西。