Я пытаюсь экспортировать 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]
Есть идеи? Заранее спасибо.