【问题标题】:Print dialog box is not open in after click on canel button单击取消按钮后,打印对话框未打开
【发布时间】:2020-06-05 13:24:28
【问题描述】:
我正在尝试使用电子和角度的打印对话框打印内容。这是打印内容的代码
this.webview.nativeElement.getWebContents().print({}, (success, errorType) => {
if (!success) {
console.log(errorType, 'error in print');
}
});
通过它打印内容,但是当我们点击取消按钮而不是打印时,打印对话框不会再次出现。
【问题讨论】:
标签:
angular
webview
electron
printdialog
【解决方案1】:
确保nodeIntegration: true 位于BrowserWindow
app.on('ready', () => {
mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: true
}
});
});
print.js 如下所示,它可以正常工作
const { remote } = require('electron');
const { BrowserWindow } = remote;
let print_win;
document.addEventListener('DOMContentLoaded', function () {
InitPrintPreview();
document.getElementById('print_preview_button').addEventListener('click', OpenPrintPreview);
});
function DoPrint() {
if (print_win) print_win.webContents.print();
}
function OpenPrintPreview() {
if(!print_win) InitPrintPreview();
}
function InitPrintPreview() {
print_win = new BrowserWindow({
'auto-hide-menu-bar': true,
width: 400,
height: 400,
});
print_win.loadURL('file://' + __dirname + '/print.html');
print_win.show();
print_win.webContents.on('did-finish-load', function () {
document.getElementById('print_button').addEventListener('click', DoPrint);
});
print_win.on('closed', function () {
print_win = null;
});
}