我正在处理一个现有的 Electron 项目(将 Web 应用程序转换为桌面应用程序),该项目的任务是将屏幕上的内容导出为 pdf/png/jpg。
情况如下:
- 桌面应用程序纯粹是客户端代码,它不连接到任何 API 或服务器(以防万一您建议使用 Nodejs 服务器端代码的解决方案)
- 我已经从canvas对象中获取了dataUrl(它是文件的base64字符串)
如何将该 dataUrl 保存到文件 (pdf/png/jpg) 中?
以下是我尝试过的一些方法:
- 旧的 window.location = dataUrl(什么也没发生)
- 在div内创建表单,action = dataUrl,然后提交表单
这两种方法都行不通!
非常感谢
要进行下载,MIME 类型为 data URI
需要修改为"application/octet-stream"
var dataURL = "data:text/plain,123";
var form = document.createElement("form");
form.action = dataURL.replace(/:[\w-/]+(?=,)/, ":application/octet-stream");
form.method = "GET";
document.body.appendChild(form);
form.submit();
使用<a>
元素为 download
属性
var dataURL = "data:text/plain,123";
var a = document.createElement("a");
a.download = "file";
a.href = dataURL;
document.body.appendChild(a);
a.click();
另请参阅How to download a file without using <a> element with download attribute or a server? ?
我是一名优秀的程序员,十分优秀!