我在我的angularjs项目中引用了print.min.js。我可以成功满足大多数需求(非常简单!)进行打印。我遇到了一种情况,当用户按下我的“打印”按钮时,浏览器的打印对话框没有出现。该问题似乎与文件大小有关。我尚不知道大小阈值,但似乎在经过几页后,该过程挂在了print.min.js中。较小的文件(2-3页左右)可以正常打印。有什么想法吗?
谢谢!
乔
答案 0 :(得分:1)
默认情况下,Print.js将处理每个html元素的计算样式。当打印大型和/或复杂的html时,此过程可能需要一段时间。特别是在较慢的计算机上。
为防止这种情况,该库具有一个参数scanStyles
,可以将其设置为false
。
但是,为了使其正常工作,您可能需要使用CSS类而不是嵌入式样式来设置html样式。由于该库未扫描计算的样式,因此它需要接收要在打印时使用的css。
例如,在具有两个附加样式表myElement
和myStylesheet.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; }'
}
)