找回密码
 立即注册

QQ登录

只需一步,快速开始

pyy514692469

注册会员

12

主题

57

帖子

153

积分

注册会员

积分
153

微信认证勋章

pyy514692469
注册会员   /  发表于:2019-4-9 16:26  /   查看:2956  /  回复:6
两个问题:
1、打印时本来应该只有一页,但是打印预览时看到是两页,其中一页是空白;
2、在打印之前复制spread,然后对其sheet隐藏时报错;

打印问题代码及Excel文件.rar

14.9 KB, 下载次数: 73

6 个回复

倒序浏览
Fiooona
论坛元老   /  发表于:2019-4-10 18:51:00
沙发
1 打印空白页的问题:
  1.    //打印设置
  2.         printInfo.paperSize(new GC.Spread.Sheets.Print.PaperSize(GC.Spread.Sheets.Print.PaperKind.a4));
  3.        // printInfo.paperSize(new GC.Spread.Sheets.Print.PaperSize(800, 1100));//700, 1100
复制代码

如果纸张是A4纸,可以使用上面的方式设置纸张大小,之前设置的 700,1100大小不合适所以出现空白页。
2  sheet隐藏报错的问题还在找,但是看了你的代码可以试试用给print方法传参来解决,
spread.print(1),打印索引为1的表单。
回复 使用道具 举报
pyy514692469
注册会员   /  发表于:2019-4-12 10:52:55
板凳
Fiooona 发表于 2019-4-10 18:51
1 打印空白页的问题:

如果纸张是A4纸,可以使用上面的方式设置纸张大小,之前设置的 700,1100大小不合 ...

但是我不一定是只打印一个sheet啊,我可能打印多个sheet的
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-4-12 18:10:50
地板
这个报错暂时可以这样处理:
在HTML中加:
   <div id="ss1" style="display: none;"></div>
JS中:
    var copyspread = new GC.Spread.Sheets.Workbook(document.getElementById("ss1"));

复制的Spread绑定在页面的div中,无需显示可以用样式控制DIV不显示。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-4-17 15:39:40
5#
您好,看了您的代码和Excel文档,提供解决方案如下:

1、SpreadJS的打印配置实例printInfo,是针对每一个sheet进行设置的,也就是说每一个sheet都要针对性地设置printInfo,毕竟每个sheet的内容、格式都不一样嘛。

您代码的第一个问题就是,仅仅设置了一个activeSheet的printInfo,也就是说只能调整好一个sheet的打印样式。

如果打印出现了空白页,一般都是由PaperSize设置不合适有关。您可以把700,1100设置为700,1200试试,我们调试时也是根据内容的不同,来适时调整Papersize的。

实在内容比较多时,也可以用zoomFactor进行一定程度的缩放,比如设置
printInfo.zoomFactor(0.8)

2、如Fiooona所说,这个问题可以通过创建隐藏div来实现,完全不依赖DOM的情况下,一些操作还是会有一些问题。
回复 使用道具 举报
pyy514692469
注册会员   /  发表于:2019-4-18 13:40:57
6#
Fiooona 发表于 2019-4-12 18:10
这个报错暂时可以这样处理:
在HTML中加:
   

谢谢你,问题解决了
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-4-18 14:52:11
7#
不客气,很高兴解决了您的问题,感谢您的反馈~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部