使用 DocX 库时,我在服务器上生成 docx 文档,然后下载它。
为此,我需要将我的文档转换为字节数组。
为此,我之前将文档保存为物理文件,如下所示:
// Save all changes to this document.
document.SaveAs(GENERATED_DOCX_LOCATION);
return System.IO.File.ReadAllBytes(GENERATED_DOCX_LOCATION);
但我宁愿不这样做。是否可以序列化此对象以下载它而无需物理保存?
我已经试过了:
private byte[] ObjectToByteArray(object obj)
{
if (obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
{
bf.Serialize(ms, obj);
return ms.ToArray();
}
}
和 :
return this.ObjectToByteArray(document);
但显然,DocX 没有实现 ISerializable。
编辑:下面的代码也不起作用
byte[] byteArray = null;
using (var stream = new MemoryStream())
{
document.SaveAs(stream);
byteArray = stream.ToArray();
}
return byteArray;