SpreadJS 打印相关知识总结

发布时间:2017/05/27 00:05 发布者:ClarkPan

返回博客中心

     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%


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网