首页 > 解决方案 > 如何在 Flask 应用程序中提供 ezdxf 下载?

问题描述

我正在尝试将 ezdxf 实现到 Flask Web-App 中,我试图在其中呈现文件并将其作为下载提供。

没有数据库可以吗?(如果没有,我怎样才能将 saveas 函数的文件目录更改为 Web 数据库?)

谢谢简

标签: dxfezdxf

解决方案


您可以通过write方法将 DXF 文件写入文本流,因此可以使用StringIO对象将其写入字符串。StringIO.getvalue()返回一个 unicode 字符串,如果您的应用需要二进制编码的数据,则必须使用正确的编码将其编码为二进制字符串。

DXF R2007 (AC1021) 及更高版本的文本编码始终'utf8'为 ,对于较旧的 DXF 版本,所需的编码存储在Drawing.encoding.

import io
import ezdxf

def to_binary_data(doc):
    stream = io.StringIO()
    doc.write(stream)
    dxf_data = stream.getvalue()
    stream.close()
    enc = 'utf-8' if doc.dxfversion >= 'AC1021' else doc.encoding
    return dxf_data.encode(enc)

doc = ezdxf.new()
binary_data = to_binary_data(doc)

推荐阅读