javascript - 是否可以在JavaScript中将字节数组/流转换为Word、Excel、PDF等文件

标签 javascript wcf

我有一个关于使用 JavaScript 进行文件操作的查询 -

场景 - 我的 JS 函数调用 wcf 服务,该服务以字节数组或流和 mime 类型的形式返回文件内容。该字节数组/流需要转换为文件并将其下载到用户的计算机上。
<强> Reference code -

var arr = "This is test content";
var byteArray = new Uint8Array(arr);
var a = window.document.createElement('a');

a.href = window.URL.createObjectURL(new Blob([byteArray], {
    type: 'text/plain'
}));
a.download = "Test";

document.body.appendChild(a);
a.click();

document.body.removeChild(a);

该代码仅适用于文本文件。 MIME 类型非文本的文件已损坏。 我知道文件操作在客户端受到严格限制,但只是为了确认 - 是否有办法将字节数组/流转换为 Word、Excel、PDF 等文件?

最佳答案

我用这个实现了类似的目标。从您拥有 byteArray 的位置开始,然后尝试以下操作:

    var byteArray = new Uint8Array(arrayBuffer);
    var a = window.document.createElement('a');   
    a.href = window.URL.createObjectURL(new Blob([byteArray], { type:'application/octet-stream' }));

    // supply your own fileName here...
    a.download = "YourFileName.XLSX";

    document.body.appendChild(a)
    a.click();
    document.body.removeChild(a)

将 contentType 设置为“application/octet-stream”将适应任何二进制文件类型。

关于javascript - 是否可以在JavaScript中将字节数组/流转换为Word、Excel、PDF等文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33124044/

相关文章:

wcf - 从 WCF 服务公开未使用的枚举

javascript - 将 vis-network 和 vis-timeline 组合在同一页面上

xml - WCF - 让客户选择返回格式

c# - Ninject - 静态类中的内核?

javascript - 访问一个 div 的所有图像并显示未定义或没有 src 的图像数

WCF 双工 TCP 通信错误

c# - WCF CustomBinding 双工无法打开客户端端口

javascript - 将对象转换为顺序数组格式 - javascript?

javascript - 获取 URL 的 chrome 扩展不起作用

javascript - 以 5 分钟间隔对数组进行排序,并具有唯一值计数