Javascript Window.print向我抛出程序停止错误

Javascript Window.print向我抛出程序停止错误,javascript,html,angular,typescript,pdf.js,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-modul

在我的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)
我在谷歌搜索了所有地方,但什么也没找到。我试着在加载时调用这个函数,以确保它不是按钮导致的

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

Stephan Rauh添加的其他信息:应用程序正在使用Mozilla的pdf.js(更准确地说:
)。

我已经找到了问题的原因,这是angular.json文件中的一个修改。我正在使用的“ngx扩展pdf查看器”中似乎有一个bug。下面是导致“window.print()”无效的修改。

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

原始答案: ngx扩展pdf查看器作者在这里。我不会称之为bug,因为pdf.js团队显然有意覆盖标准的
print()
函数。但是,我必须承认这是应用程序中的一个bug,所以我们应该修复它

我已经开始研究这个话题了。我已经发布了ngx pdf viewer 0.9.53的初步错误修复。请参阅以及如何激活错误修复(它仅包含在开发人员预览中)


成功修复错误并将其提交到ngx extended pdf viewer的主要分支后,我将再次编辑此答案。

这可能是浏览器支持的问题。您要在哪个浏览器上运行此操作?是否有一个最小的可重复的例子,我们可以看看?也许是一个示例?它似乎不适用于Chrome和IE。我不知道如何给你一个合适的例子,因为这个应用程序有很多部分。到目前为止,我还没有一个最小的可复制的例子。你想在哪个版本的Chrome和IE上运行这个?Chrome是75.0.3770.100,IE是11.253.17763.0。我也可以在我的开发机器上复制它,它使用的是Chrome(75.0.3770.100)。这不是一个真正的bug。这只是底层pdf.js库的意外副作用。尽管如此,这是需要解决的问题。有人好心地在我们的bugtracker上打开了一个问题:不重要,但很感激:如果我的回答真的对你有帮助,请投票表决。继续回答有关StackOverflow的问题始终是一个激励因素。:)
printCoverPage() {
        window.print();
    }