#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, и это будет убийцей производительности.