我正在使用一个现有的Electron项目(将Web应用程序转换为桌面应用程序),该项目的任务是将屏幕上的内容导出为pdf/png/jpg。

情况如下:

  • 桌面应用程序纯粹是客户端代码,它不连接到任何API或服务器(以防万一您建议使用Nodejs服务器端代码的解决方案)
  • 我已经从 Canvas 对象获得了dataUrl(这是文件的base64字符串)

  • 如何将dataUrl保存到文件(pdf/png/jpg)?

    这是我尝试过的一些方法:
  • 好的旧window.location = dataUrl(什么也没有发生)
  • 在div中创建一个表单,action = dataUrl,然后提交表单

  • 两种方式都不起作用!

    非常感谢你

    最佳答案

    为了进行下载,需要将data URI的MIME类型更改为"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?

    关于javascript - Electron -如何将base64 dataUrl保存到文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46892163/

    10-09 02:05