SpreadJS打印预览
SpreadJS V15.0之后,在线表格设计器(designer)已经在UI行为上实现了打印预览的功能,具体如下图所示:但是在很多使用场景中,用户可能并不会集成设计器,只是嵌入了表格区域,想要通过自己写一个按钮的方式,来实现打印预览的需求。本文会针对这一应用场景,提供一种实现打印预览的方式。
Step1:监听beforePrint事件;
spread.bind(GC.Spread.Sheets.Events.BeforePrint,function(e,data){
sjsiframe = data.iframe
sjsiframe.style.width = '800px'
sjsiframe.style.height = '600px'
sjsiframe.style.position = 'fixed'
sjsiframe.style.top = '200px'
sjsiframe.style.left = '200px'
sjsiframe.style.background = '#ffffff'
data.cancel = true
})
在BeforePrint事件中,data.iframe代表的是当前打印的dom结构,可以在控制台中的dom结构查看,默认这个iframe的宽高都是0,不会显示。因此需要在打印之前修改这个iframe的宽高,使其显示出来。
Step2: 实现打印逻辑;
document.getElementById('preview').onclick = function(){
let sheet = spread.getActiveSheet()
let printInfo = new GC.Spread.Sheets.Print.PrintInfo()
printInfo.showColumnHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide)
printInfo.showRowHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide)
sheet.printInfo(printInfo)
spread.print()
}
完整的demo参考:https://jscodemine.grapecity.com/share/rL2Gldldckq6azOVP9vtEg/
页:
[1]