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 的主分支后再次编辑此答案。
在我的网络应用程序中,我试图打印屏幕的内容。虽然当我点击按钮进行打印时,它抛出了以下错误
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 的主分支后再次编辑此答案。