Как отключить Ctrl + P и Ctrl + S?в ng2-pdfjs-viewer.Прямо сейчас любой может распечатать или скачать с помощью ключей. Любое предложение будет оценено - PullRequest
0 голосов
/ 23 сентября 2019

Я использую библиотеку ng2-pdfjs-viewer для отображения pdf в моем приложении angular 7.Проблема в том, что если флаг печати имеет значение false, кнопка для печати не видна, что работает должным образом, но пользователь может щелкнуть правой кнопкой мыши или использовать клавиши CTRL + P или CTRL + S и распечатать или загрузить файл PDF.Я хочу ограничить использование этих ключей пользователем.Я пытался использовать методы JavaScript в моем DOM, но они не работают, так как компонент PDFJS перекрывается. В конце концов я попытался изменить файл viewer.js в папке node_modules, которая работала для меня на моем компьютере, но мы используем инструмент сборки Jenkins, который использует файлы изSVN и я не могу зафиксировать node_modules в SVN.Дженкинс использует библиотеки с сервера на основе package.json, так что моя модификация в этом случае использует меньше. Я также пробовал событие onBeforePrint, которое не вызывается, не знаю почему.Пожалуйста, помогите мне в этом, как мы можем сделать это в качестве альтернативы.Ваша помощь будет оценена.

Спасибо.

записываю код, который я пытался изменить viewer.js

Код в моем компоненте

<mat-dialog-content class="my-2 d-flex justify-content-center px-2">
  <div class="w-100 h-100">
    <ng2-pdfjs-viewer [download]="isPrintable" (onBeforePrint)="beforePrint()" [print]="isPrintable" *ngIf="pdfContent" [pdfSrc]="pdfContent"></ng2-pdfjs-viewer>
</div> 
</mat-dialog-content>

viewer.js модификации

//To disable right click print added by KK on 29/08/2019
window.oncontextmenu = function () {
return false;
}
var hasAttachEvent = !!document.attachEvent;
window.addEventListener('keydown', function (event) {

  //code to prevent download and print using CTRL+S and CTRL+P added by KK on 29/08/2019
  if ((event.keyCode === 80 || event.keyCode === 83) && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) {
    //window.print();

    if (hasAttachEvent) {
      return;
    }

    event.preventDefault();

    if (event.stopImmediatePropagation) {
      event.stopImmediatePropagation();
    } else {
      event.stopPropagation();
    }

    return;
  }

}, false);
 // CTRL + P key combinations you want to disable
  @HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) {
    if (event.ctrlKey && event.keyCode === 80) {
      return false;
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...