【问题标题】:Open PDF packaged within Electron with External App使用外部应用程序打开 Electron 中打包的 PDF
【发布时间】:2019-04-08 08:37:12
【问题描述】:

我们想在我们的应用程序中分发一组 PDF 文件。最初我们使用 React PDF 查看器打开这些文件,但用户确实需要能够将这些文件保存到他们的计算机上,以便他们可以在自己的时间阅读/注释/打印这些文件等。

我们在 Electron 中使用 Create React App - 你有什么建议吗?

谢谢!

使用以下方法设法使其正常工作:

PDFLink= (e)=> { // Open PDF with `shell` method
    console.log("Clicked PDF: ");
    var attrs=e.currentTarget.attributes;
    const shell = window.require('electron').shell;
    const remote = window.require('electron').remote;
    const appPath = remote.app.getAppPath();
    console.log('appPath: ', appPath);

    for (var a=0;a<attrs.length;a++)
    {
      console.log(attrs[a].name+"="+attrs[a].value);
      switch (attrs[a].name)
      {
        case 'data-pdf':
        //console.log(app.getAppPath());
        shell.openItem(appPath+'\\public\\pages\\test1.pdf');

          break;

        default:
          break;
      }
    }

  }

【问题讨论】:

标签: reactjs pdf electron create-react-app electron-builder


【解决方案1】:

如果您的应用附带了 PDF,您只需使用 shell 模块打开它们:shell.openItem(fullPath)

外壳

使用默认应用程序管理文件和 URL。

shell.openItem(fullPath)

返回布尔值 - 项目是否成功打开

以桌面默认方式打开给定文件。

【讨论】:

  • 我可以从我的应用程序触发它到一个外部 URL,这很棒但是我不确定应用程序本身的文件路径的正确格式
  • 嗯,您可以使用app.getAppPath() 获取您的应用运行所在的目录,然后构建您已交付资源所在的路径。
  • 这可以工作,只需要能够从反应中访问getAppPath。目前这样做是这样的:const { app } = window.require('electron'); console.log(app.getAppPath()); 但得到错误:无法读取未定义的属性“getAppPath”
  • 您可以尝试指定remote,例如:const { app } = window.require('electron').remote 吗?
猜你喜欢
  • 2016-08-11
  • 2022-12-16
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 2015-08-03
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多