我可以使用命令工具将 .dxf 转换为 .png 或 .jpg 吗?

我可以使用命令工具将 .dxf 转换为 .png 或 .jpg 吗?

我正在寻找一些允许我将 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
    

抱歉,这不是一个适合所有人的答案 - 但希望它能给你提供一些可以尝试的东西。

相关内容