浏览器打印对话框不显示

Browser Print dialog not showing

我的 angularjs 项目中引用了 print.min.js。我已成功打印(非常简单!)满足我的大部分需求。当用户按下我的 'Print' 按钮时,我遇到了 运行 浏览器打印对话框不出现的情况。该问题似乎与文件大小有关。我还不知道大小阈值,但似乎在几页长度之后,该过程在 print.min.js 某处挂起。较小的文件(2 - 3 页左右)打印没有问题。有什么想法吗?

谢谢!

默认情况下,Print.js 将处理每个 html 元素的计算样式。打印大型和/或复杂 html 时,此过程可能需要一段时间。特别是在较慢的机器上。

为防止这种情况,库有一个参数 scanStyles,可以设置为 false。 但是,为了使其正常工作,您可能希望使用 css 类 而不是内联样式来设置 html 的样式。由于库不扫描计算样式,它需要接收要在打印时使用的 css。

例如,在带有两个附加样式表 myStylesheet.cssvendor.css 的页面上打印 id myElement 的元素时:

printJS(
  {
    printable: 'myElement',
    type: 'html',
    scanStyles: false,
    css: ['myStyleSheet', 'vendor.css']
  }
)

这也支持 css 打印媒体查询。

如有必要,您还可以传递自定义内联样式:

printJS(
  {
    printable: 'myElement',
    type: 'html',
    scanStyles: false,
    css: ['myStyleSheet', 'vendor.css'],
    style: 'h1 { color: blue; }, someClass { font-size: 1rem; }'
  }
)

http://printjs.crabbly.com/#configuration