我要实现的目标是,由远程托管并正在我的 Electron 应用程序中加载的网页希望 Electron 应用程序仅打印特定的 div 元素。我知道如果我使用webContents.print({silent:true})
,整个页面将被静默打印。但是我希望同一件事只在特定的div上发生。
提前致谢。
最佳答案
一种方法是向div发送一个新的隐藏窗口,然后从那里打印。
main.js
app.on('ready', function(){
mainWindow = new BrowserWindow({ width: 1080, height:720})
workerWindow = new BrowserWindow();
workerWindow.loadURL("file://" + __dirname + "/printerWindow.html");
workerWindow.hide();
});
// retransmit it to workerWindow
ipcMain.on("printPDF", function(event, content){
workerWindow.webContents.send("printPDF", content);
});
// when worker window is ready
ipcMain.on("readyToPrintPDF", (event) => {
workerWindow.webContents.print({silent: true});
})
controller.js
// target the object you want to print and send it to the new window
ipcRenderer.send("printPDF", div_to_be_targeted);