Window.print引发程序停止错误

时间:2019-06-21 22:34:20

标签: javascript html angular typescript pdf.js

在我的Web应用程序中,我试图打印屏幕内容。尽管当我单击要打印的按钮时,它会引发以下错误

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>)。

2 个答案:

答案 0 :(得分:1)

我已找到问题的原因,这是对angular.json文件的修改。我正在使用的“ ngx-extended-pdf-viewer”似乎有一个错误。以下是导致“ window.print()”无法正常工作的修改。 The left causes the error, the right fixes the error

答案 1 :(得分:1)

更新06/07/2019 :我已经发布了<ngx-extended-pdf-viewer>的新版本。请更新到0.9.54或更高版本。此版本停止覆盖window.print(),并修复了其他一些与打印有关的错误。

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

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

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