我正在尝试将电子形式的角度视图导出为pdf(在Windows上)。 我在角度分量中的功能:
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]
有什么想法吗? 预先感谢。