window系統電腦或平板上的electron靜默列印, 2018年10月更新
阿新 • • 發佈:2018-12-14
最近有個需求,在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;
我這個專案裡,要把網頁上一個異形區域打到膠版紙上,實際打出的大小受到網頁大小/印表機設定/紙張大小三方面影響,如果你也有這種個性化列印需求的話,可以再探討。