【问题标题】:Window.print throws me an program stopping errorWindow.print 给我一个程序停止错误
【发布时间】:2019-11-04 18:12:30
【问题描述】:

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

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(更准确地说:&lt;ngx-extended-pdf-viewer&gt;)。

【问题讨论】:

  • 这可能是浏览器支持的问题。您要在哪个浏览器上运行它?是否有一个最小的可重现示例可供我们查看?也许是一个样本StackBlitz
  • 它似乎不适用于 Chrome 和 IE。我不确定如何给你一个合适的例子,因为这个应用程序有很多部分。到目前为止,我还没有一个最小的可重现示例。
  • 您要在哪个版本的 Chrome 和 IE 上运行它?
  • Chrome 是 75.0.3770.100,IE 是 11.253.17763.0
  • 我也可以在使用 Chrome (75.0.3770.100) 的开发机器上重现它

标签: javascript html angular typescript pdf.js


【解决方案1】:

2019 年 6 月 7 日更新:我发布了新版本的 &lt;ngx-extended-pdf-viewer&gt;。请更新到 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 的主分支后,我将再次编辑此答案。

【讨论】:

  • 不重要,但很感激:如果我的回答真的对你有帮助,请点赞。这始终是继续在 StackOverflow 上回答问题的动力。 :)
【解决方案2】:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
  • 2011-12-18
  • 1970-01-01
  • 2020-04-03
  • 1970-01-01
  • 2021-01-31
  • 2014-01-21
相关资源
最近更新 更多