找回密码
 立即注册

QQ登录

只需一步,快速开始

相遇Spreadjs
初级会员   /  发表于:2018-9-19 09:53  /   查看:5911  /  回复:3
打印页,调用print,然后在google中选择横向打印,打印预览就会出现空白页?这是怎么回事呢?如何解决?附件中的例子也是你们论坛上的例子,也会出现空白页?

SpreadjsPrintTest.zip

1.79 MB, 下载次数: 166

3 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-9-19 10:40:41
沙发
您好,Demo中有一行代码,是设置打印页面的宽高的:

  1. printInfo.paperSize(new GcSpread.Sheets.PaperSize(1200, 850));
复制代码


您只需要改小高度,将850改到800即可,如图:

image.png176742247.png
回复 使用道具 举报
相遇Spreadjs
初级会员   /  发表于:2018-9-19 14:02:42
板凳
KevinChen 发表于 2018-9-19 10:40
您好,Demo中有一行代码,是设置打印页面的宽高的:

也就是说必须写一个高度设置了?如果我不设置这个高度,也就是把printInfo.paperSize(new GcSpread.Sheets.PaperSize(1200, 800)); 这句话注释掉,也会出现空白页?这怎么解决,我的纸张大小高度是不固定的,我不能在代码里面写成定值吧?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-9-19 15:10:03
地板
本帖最后由 DerrickJiao 于 2020-6-15 11:36 编辑

抱歉前边没跟您解释清楚。

首先,spreadjs打印这块调用的是浏览器自身的打印机制来执行的,spreadjs的设置只能尽可能与浏览器的设置重合,而不是精确地由spreadjs来控制,这是由底层机制决定的。

然后,浏览器打印设置如果设置的是A4纸(物理纸张),spreadjs中设置的就是逻辑纸张,其相当于将逻辑纸张覆盖在浏览器设置的物理纸上,如果spreadjs设置的纸张超出了浏览器的纸张(浏览器往往会为打印页添加边框和眉脚等),就会造成空白部分被挤出来形成了空白页,这就是造成空白页的原因。

对于您的问题,如果仅仅是在chrome上打印A4尺寸,那么您可以将spreadjs打印的papersize写成定值,如果您需要打印不同尺寸的纸张,您也许需要为用户提供一个选项,以便提前在程序中进行计算。

参考文献:
SpreadJS V9 设置横向纵向打印:
https://www.grapecity.com.cn/blogs/spreadjsv9-print-landscape

SpreadJS打印浏览器兼容与空白页相关问题:
https://gcdn.grapecity.com.cn/fo ... ad&tid=45501&page=1

spreadjs打印选横向出现空白页:
https://gcdn.grapecity.com.cn/fo ... =%BF%D5%B0%D7%D2%B3

spreadjs学习指南:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/print/custom-print/purejs
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部