我要实现的目标是,由远程托管并正在我的 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);

09-19 07:24