Диалоговое окно печати не открывается после нажатия на кнопку canel - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь напечатать содержимое, используя диалоговое окно печати в электронном виде, и angular. Вот код для печати содержимого.

this.webview.nativeElement.getWebContents().print({}, (success, errorType) => {
    if (!success) {
      console.log(errorType, 'error in print');
    }
 });

При этом он печатает содержимое, но когда мы нажимаем кнопку отмены вместо of print, диалоговое окно печати больше не появляется.

1 Ответ

0 голосов
/ 21 февраля 2020

убедитесь, что 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;
  });

}
...