Electron 8 не может распечатать ToPDF - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь экспортировать angular представление в pdf в электронном виде (On Windows). Моя функция в angular компоненте:

printToPDF() {
    electron.ipcRenderer.send('testing-pdf');
}

Основной процесс:

ipcMain.on('testing-pdf', (event) => {

        const shell = require('electron').shell;
        const BrowserWindow = require('electron').BrowserWindow;
        const path = require('path');
        const os = require('os');
        const pdfPath = path.join(os.homedir(), 'testing.pdf');

        const win = BrowserWindow.fromWebContents(event.sender);

        win.webContents.on('did-finish-load', () => {
            console.log('Load finish');
            win.webContents.printToPDF({}).then(data => {
                fs.writeFile(pdfPath, data, (error) => {
                    if (error) throw error;
                    console.log('Write PDF successfully.')
                })
            }).catch(error => {
                console.log(error)
            });
        });
    });

Таким образом, электрон никогда не генерирует событие did-finish-load. Если я введу код в течение тайм-аута:

setTimeout(() => {....}, 5000);

Я получу ошибку:

[Error: Failed to generate PDF]

Есть идеи? Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...