Electron:从缓冲区加载URL
在我的渲染器中,我可以发出一个事件来创建PDF。然而,在写入磁盘之前,我想先在另一个窗口中打开新粘贴的PDF。如何避免写入文件系统并使用Electron:从缓冲区加载URL,electron,Electron,在我的渲染器中,我可以发出一个事件来创建PDF。然而,在写入磁盘之前,我想先在另一个窗口中打开新粘贴的PDF。如何避免写入文件系统并使用数据作为加载URL的源代码 到目前为止,我的代码是: ipcMain.on('view-pdf', (event, url) => { let pdf mainWindow.webContents.printToPDF({}, (error, data) => { if (error) throw error pdf = da
数据
作为加载URL
的源代码
到目前为止,我的代码是:
ipcMain.on('view-pdf', (event, url) => {
let pdf
mainWindow.webContents.printToPDF({}, (error, data) => {
if (error) throw error
pdf = data
// what's the magic here to make pdf work?
})
const pdfWindow = new BrowserWindow({
width: 1024,
height: 800,
webPreferences: {
plugins: true,
webSecurity: false
}
})
pdfWindow.loadURL(pdf)
})
Javascript的异步本质是一个野兽。这与预期的效果一样:
ipcMain.on('view-pdf', (event, url) => {
mainWindow.webContents.printToPDF({}, (error, data) => {
if (error) throw error
const pdf = data.toString('base64')
const pdfWindow = new BrowserWindow({
width: 1024,
height: 800,
webPreferences: {
plugins: true,
webSecurity: false
}
})
pdfWindow.loadURL('data:application/pdf;base64,' + pdf)
})
})
代码并不完美,但它就是这样工作的。而且速度非常慢。我认为他们正在研究plf插件iirc中更好的解决方案。