最近有個需求,在window平板上實現打印,用戶在平板上一頓操作之後,生成一個組合的頁面,並將頁面上的內容打印到紙張上帶走。
首先需要在main.js裏面添加如下代碼,在主進程中,偵聽渲染進程的打印事件。
const ipcMain = require('electron').ipcMain;
ipcMain.on("print", (event, arg) => {
//mainWindow 是打開的窗體
mainWindow.webContents.print({
silent: true, //靜默
printBackground: false, //是否打印網頁背景
deviceName: ''
}, function(error) {
})
});
在渲染進程中,需要使用以下代碼。
const ipcRenderer = require('electron').ipcRenderer;
ipcRenderer.send('print', '');
如果不需要打印整個頁面,可以考慮嘗試將要打印的內容臨時替換頁面內容。
window.document.body.innerHTML=bdhtml;
我這個項目裏,要把網頁上一個異形區域打到膠版紙上,實際打出的大小受到網頁大小/打印機設置/紙張大小三方面影響,如果你也有這種個性化打印需求的話,可以再探討。