spreadjs的打印功能是一个用户使用度非常高的常用功能,这里对打印的相关知识以及问题做一个总结,方便大家进行参考。
1,打印功能调用spread中的print方法进行打印。
spread.print(sheetIndex?);
其中参数为需要打印sheet的index,传入sheet的index打印指定sheet。如果想全部打印,那么参数什么都不传即可。
Q:如果打印多个sheet,但不是所有sheet。例如:spread中有四个sheet,如何打印其中的两个?
A:这样需要将spread复制到一个临时spread中,在临时spread中删除不打印的sheet,然后打印临时spread。
Q:如何将一个sheet分多页打印?
A:使用setRowPageBreak或setColumnPageBreak方法来插入行分页符或列分页符。
2,打印时候为了满足不同的打印效果,spreadjs提供了printinfo来设置打印的相关信息。printinfo的使用方法如下:
var printInfo = sheet.printInfo(); //获取printInfo
printInfo.xxxx 来进行设置,xxxx为printinfo中的方法。
printInfo中支持的设置方法如下:
printInfo.bestFitColumns(true/false):打印时是否每一列都自适应宽度。
printInfo.bestFitRows(true/false):打印时是否每一行都自适应高度。
printInfo.blackAndWhite(true/false):彩色打印还是黑白打印(true为黑白打印,false为彩色打印)
printInfo.centering(PrintCentering):打印的居中方式,参数为GC.Spread.Sheets.Print.PrintCentering的枚举,有以下四种
both:水平垂直均居中
horizontal:水平居中
vertical:垂直居中
none:不居中
printInfo.headerLeft(text/format):表脚区域中间部分的文本及样式。
printInfo.headerCenter(text/format):表脚区域左部分的文本及样式。
printInfo.headerRight(text/format):表脚区域右部分的文本及样式。
printInfo.footerCenter(text/format):表脚区域中间部分的文本及样式。
printInfo.footerLeft(text/format):表脚区域左部分的文本及样式。
printInfo.footerRight(text/format):表脚区域右部分的文本及样式。
text:文本内容,如:printInfo.footerCenter("GrapeCity")
format:& 被用作为特殊的转义字符,用来转义以下打印特殊数据的关键字。
- P: 当前页数。
- N: 总页数。
- D: 当前日期。(今天)
- T: 当前时间。
- G: 图片,用来显示相应区域图片(XXXImage)的占位符。
- S: 删除线。
- U: 下划线。
- B: 粗体。
- I: 斜体。
- ": (双引号),用来设置字体。
- F: Spread的名字。
- A: 表单名字。
如:printInfo.footerCenter("&P/&N");
printInfo.headerLeftImage(img):表头区域左部分的图片。img为图片的路径或者图片的base64编码。
printInfo.headerCenterImage(img):表头区域中间部分的图片。img为图片的路径或者图片的base64编码。
printInfo.headerRightImage(img):表头区域右部分的图片。img为图片的路径或者图片的base64编码。
printInfo.footerLeftImage(img):表脚区域左部分的图片。img为图片的路径或者图片的base64编码。
printInfo.footerCenterImage(img):表脚区域中间部分的图片。img为图片的路径或者图片的base64编码。
printInfo.footerRight(img):表脚区域右部分的图片。img为图片的路径或者图片的base64编码。
printInfo.margin(object):边距。例如printInfo.margin({top:75, bottom:75, left:20, right:20, header:10, footer:20});
value.top {number} 顶部边距
value.bottom {number} 底部边距
value.left {number} 左边距
value.right {number} 右边距
value.header {number}
顶部标题的偏移量
value.footer {number}
底部标题的偏移量
printInfo.orientation(GC.Spread.Sheets.Print.PrintPageOrientation.landscape/GC.Spread.Sheets.Print.PrintPageOrientation.portrait):设置打印方式横向或纵向
GC.Spread.Sheets.Print.PrintPageOrientation.landscape为横向
GC.Spread.Sheets.Print.PrintPageOrientation.portrait为纵向
如果要实现横向打印与纵向打印不仅要在设置中进行设置,还需将浏览器的设置也与之设置一致
printInfo.pageOrder(value):打印顺序,value为GC.Spread.Sheets.Print.PrintPageOrder的枚举。
GC.Spread.Sheets.Print.PrintPageOrder.auto 自动
GC.Spread.Sheets.Print.PrintPageOrder.overThenDown 先横向排列再竖向排列
GC.Spread.Sheets.Print.PrintPageOrder.downThenOver 先横向排列再竖向排列
当需要一页纸打印多个sheet时,可以设置打印顺序来调整sheet以横向排列还是纵向排列。
printInfo.pageRange(range):打印范围,range为特殊格式的字符串,如:“1,2,3,5-12”代表打印1,2,3页,第5至12页。
printInfo.paperSize(paperSize):设置打印纸张大小。
paperSize需要初始化一个new GC.Spread.Sheets.Print.PaperSize()对象,
其中参数有GC.Spread.Sheets.Print.PaperKind的枚举
paperkind可以参考: http://sphelp.grapecity.com/webhelp/SpreadSheets10/webframe.html#JavascriptLibrary~GC.Spread.Sheets.Print.PaperKind.html
PaperSize对象同样支持传入纸张的宽与高来确定纸张大小,
例如:new GC.Spread.Sheets.Print.PaperSize(300, 500)
为一张宽300高500的纸单位为百分之一英寸。
printInfo.qualityFactor(value):打印质量,value为1~8的一个数值,越高则打印效果越好。
printInfo.repeatColumnStart(columnindex):重复打印列的起始。
printInfo.repeatColumnEnd(columnindex):重复打印列的结束。
printInfo.repeatRowStart(rowindex):重复打印行的起始。
printInfo.repeatRowEnd(rowindex):重复打印行的结束。
重复打印行列当有需要在打印的每一页都打印行列数据时使用,参数为行与列的index。
printInfo.rowEnd(rowindex):打印截至至某一行
printInfo.rowStart(rowindex):打印起始与某一行
printInfo.columnEnd(columnindex):打印截至至某一列
printInfo.columnStart(columnindex):打印起始于某一列,设置部分打印时使用。
printInfo.showBorder(true/false):是否显示边框
printInfo.showColumnHeader/printInfo.showRowHeader:是否打印列头/行头,
参数为PrintVisibilityType枚举值。
- inherit: 继承自表单的设置 ((默认) 行头/列头可见)。
- hide: 不打印。
- show: 在每页中都显示。
- showOnce: 显示一次 (在第一页)。
printInfo.showGridLine:是否打印网格线 (默认是打印)。
printInfo.useMax
printInfo.zoomFactor:放大/缩小比例,例如printInfo.zoomFactor(0.8)为缩放至80%