Принудительное сохранение PDF вместо предварительного просмотра

#node.js #electron #webrequest

Вопрос:

Мне нужно сохранить весь PDF (с диалогом) вместо предварительного просмотра. В приложении Electron (electron-forge) я всегда получаю пустой недопустимый пустой предварительный просмотр PDF — файлов для PDF — содержимого-даже если я попробую какой-то внешний корректный контент-это действительный PDF-файл:

 mainWindow.loadURL('https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf')
 

Но если я использую LoadURL() который перенаправляет меня на другой URL, где находится файл, загруженный с
header('Content-Disposition:attachment;filename=
.. для xls это работает просто отлично, я просто слушаю «will-download»

 mainWindow.webContents.session.on('will-download', (event, item, webContents) => {
  item.once('done', (event, state) => { // process DownloadItem, show dialog
 

но для pdf-приложения все еще пытается использовать дефектный просмотрщик pdf по умолчанию в electron, который ничего не делает, кроме как показывает пустой скелет просмотра. Есть ли что-нибудь, желательно быстрое, чтобы начать загрузку для веб-запроса, который уже выполняется, во время «WebRequest.Кто-то из читателей получил» ?

В приложении я могу сказать, является ли это PDF-файл по запросу, нужно выяснить, что делать дальше:

 app.on('ready', function () {
  const { session } = require('electron');
  session.defaultSession.webRequest.onHeadersReceived(function (details, callback) {
    console.log('onHeadersReceived', details);
    // WHAT NOW, HOW SAVE THIS, IF IT IS PDF ?
    callback({ cancel: false, responseHeaders: details.responseHeaders });
  });
});
 

Мне нужно продолжить сохранение файла из текущего веб-запроса, вместо перенаправления запроса, потому что генератор (какой-то старый древний API) снова восстановит PDF, и это будет убийцей производительности.