Хобрук: Ваш путь к мастерству в программировании

Откройте PDF-файл, упакованный в Electron, с помощью внешнего приложения

Мы хотели бы распространять набор файлов PDF в нашем приложении. Первоначально мы открывали их с помощью программы просмотра React PDF, однако пользователям действительно нужно иметь возможность сохранять эти файлы на свой компьютер, чтобы они могли читать/аннотировать/распечатывать их в свое время и т. д.

Мы используем приложение Create React в Electron. Есть ли у вас какие-либо предложения?

Спасибо!

Удалось заставить это работать, используя следующий метод:

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;
      }
    }

  }


Ответы:


1

Если PDF-файлы поставляются с вашим приложением, вы можете просто использовать модуль shell, чтобы открыть их: shell.openItem(fullPath) .

ракушка

Управляйте файлами и URL-адресами с помощью приложений по умолчанию.

оболочка.openItem (полный путь)

Возвращает логическое значение — был ли элемент успешно открыт.

Откройте данный файл способом по умолчанию на рабочем столе.

08.04.2019
  • Я могу вызвать это на внешний URL-адрес из моего приложения, и это здорово, однако я не уверен в правильном формате пути к файлу чего-то внутри самого приложения. 09.04.2019
  • Хм, вы можете получить каталог, в котором работает ваше приложение, используя app.getAppPath(), а затем создайте путь к тому месту, где находятся ваши доставленные ресурсы. 09.04.2019
  • это может сработать, просто нужно иметь доступ к getAppPath из реакции. В настоящее время это делается так: const { app } = window.require('electron'); console.log(app.getAppPath());, но возникает ошибка: Невозможно прочитать свойство getAppPath неопределенного 09.04.2019
  • Не могли бы вы попробовать указать remote, например: const { app } = window.require('electron').remote ? 09.04.2019
  • Новые материалы

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...