浏览器打印对话框未显示

时间:2018-08-15 10:54:44

标签: printjs

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

例如,在具有两个附加样式表myElementmyStylesheet.css的页面上打印id为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