0

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

谢谢!

4

1 回答 1

1

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

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

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

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

于 2018-08-18T22:59:31.703 回答