Window.print 抛出程序停止错误

Window.print throws me an program stopping error

在我的网络应用程序中,我试图打印屏幕的内容。虽然当我点击按钮进行打印时,它抛出了以下错误

core.js:15714 ERROR Error: The overlay manager has not yet been initialized.
    at ensureOverlay (viewer.js:15555)
    at print (viewer.js:15449)
    at PrintCoverScanComponent.push../src/app/feature-modules/coverscan/component/print-coverscan.component.ts.PrintCoverScanComponent.printCoverPage (print-coverscan.component.ts:135)
    at SafeSubscriber._next (print-coverscan.component.ts:95)
    at SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.__tryOrUnsub (Subscriber.js:196)
    at SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.next (Subscriber.js:134)
    at Subscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._next (Subscriber.js:77)
    at Subscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:54)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/map.js.MapSubscriber._next (map.js:41)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:54)

我在 google 中到处检查,但一无所获。我试过在加载时调用该函数以确保它不是导致任何问题的按钮。

<div *ngIf="!progressSpinnerEnabled" class="d-print-none">
        <hr />
        <button type="submit" style="float: right; margin-bottom: 10px;" nz-button nzType="primary" (click)="printCoverPage()">Print</button>
    </div>
printCoverPage() {
        window.print();
    }

Stephan Rauh 添加的附加信息:该应用程序正在使用 Mozilla 的 pdf.js(更准确地说:<ngx-extended-pdf-viewer>)。

我找到了问题的原因,这是对 angular.json 文件的修改。我正在使用的 'ngx-extended-pdf-viewer' 中似乎存在错误。下面是导致 'window.print()' 不起作用的修改。 The left causes the error, the right fixes the error

2019 年 6 月 7 日更新: 我发布了 <ngx-extended-pdf-viewer> 的新版本。请更新至0.9.54或以上版本。此版本停止覆盖 window.print() 并修复了其他几个与打印相关的错误。

原回答: ngx-extended-pdf-viewer作者在这里。我不会将其称为错误,因为 pdf.js 团队显然打算覆盖标准 print() 函数。但是,我不得不承认这是您应用程序中的错误,因此我们应该修复它。

我已经开始研究这个话题了。我已经发布了 ngx-pdf-viewer 0.9.53 的初步错误修复。请参阅 https://github.com/stephanrauh/ngx-extended-pdf-viewer/issues/101 以及如何激活错误修复(它仅包含在开发人员预览版中)。

我将在成功(或者我希望如此!)修复错误并将其带到 ngx-extended-pdf-viewer 的主分支后再次编辑此答案。