请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

xiaolong

金牌服务用户

97

主题

378

帖子

1033

积分

金牌服务用户

积分
1033

[已处理] 关于打印

xiaolong
金牌服务用户   /  发表于:2019-3-15 13:58  /   查看:4382  /  回复:9
excel里打印是正常的,spread打印,一个sheet会超出到第二页

demo.zip

476.13 KB, 下载次数: 273

9 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-15 18:28:54
沙发
您好,SpreadJS是调用浏览器打印来实现的,与Excel打印机制不同,需要调用printInfo来设置,

可以参考下列代码:

  1. var sheet = spread.getActiveSheet();
  2.             sheet.options.rowHeaderVisible = false;
  3.             sheet.options.colHeaderVisible = false;
  4.             // sheet.deleteColumns(0,1);
  5.             // sheet.printInfo().paperSize(A4);
  6.             sheet.printInfo().paperSize(new GC.Spread.Sheets.Print.PaperSize(925, 1200));
  7.             // sheet.printInfo().centering(GC.Spread.Sheets.Print.PrintCentering.both);
  8.             sheet.printInfo().margin({ top: 0, bottom: 0, left: 0, right: 0, header: 0, footer: 0 });
  9.             sheet.printInfo().orientation(GC.Spread.Sheets.Print.PrintPageOrientation.portrait);
  10.             // sheet.printInfo().orientation(GC.Spread.Sheets.Print.PrintPageOrientation.landscape);
  11.             sheet.printInfo().zoomFactor(0.75);
  12.             //
  13.             // spread.print(spread.getSheetIndex(sheet.name()));

  14.             spread.print();
复制代码
回复 使用道具 举报
xiaolong
金牌服务用户   /  发表于:2019-3-20 16:38:30
板凳
KevinChen 发表于 2019-3-15 18:28
您好,SpreadJS是调用浏览器打印来实现的,与Excel打印机制不同,需要调用printInfo来设置,

可以参考下 ...

sheet.options.rowHeaderVisible = false;
sheet.options.colHeaderVisible = false;
sheet.printInfo().paperSize(new GC.Spread.Sheets.Print.PaperSize(925, 1200));
sheet.printInfo().margin({top: 0,bottom: 0,left: 0,right: 0,header: 0,footer: 0});
sheet.printInfo().orientation(GC.Spread.Sheets.Print.PrintPageOrientation.landscape);
sheet.printInfo().zoomFactor(0.75);
设置横向后还是有这个问题
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-20 19:19:55
地板
您的表格是纵向的,应该设置为:

  1. sheet.printInfo().orientation(GC.Spread.Sheets.Print.PrintPageOrientation.portrait);
复制代码
回复 使用道具 举报
xiaolong
金牌服务用户   /  发表于:2019-3-21 21:56:21
5#
KevinChen 发表于 2019-3-20 19:19
您的表格是纵向的,应该设置为:

添加进数据后是这样的

demo.zip

160.84 KB, 下载次数: 179

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-22 09:40:46
6#
您好,您要的打印样式是不是这样的?如图:

image.png72297972.png

您注意Chrome浏览器的打印设置,无边框无页眉页脚。

SpreadJS的打印代码设置:

  1. var sheet = spread.getActiveSheet();
  2. sheet.options.rowHeaderVisible = false;
  3. sheet.options.colHeaderVisible = false;
  4. sheet.printInfo().paperSize(new GC.Spread.Sheets.Print.PaperSize(925, 1200));
  5. sheet.printInfo().margin({ top: 10, bottom: 0, left: 10, right: 10, header: 0, footer: 0 });
  6. sheet.printInfo().orientation(GC.Spread.Sheets.Print.PrintPageOrientation.portrait);
  7. sheet.printInfo().zoomFactor(0.75);
  8. spread.print();
复制代码
回复 使用道具 举报
xiaolong
金牌服务用户   /  发表于:2019-3-28 11:05:12
7#
KevinChen 发表于 2019-3-22 09:40
您好,您要的打印样式是不是这样的?如图:

您好,需要的是横向的设置,纵向的是没问题的。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-28 16:57:51
8#
xiaolong 发表于 2019-3-28 11:05
您好,需要的是横向的设置,纵向的是没问题的。

横向打印,是要把内容都打印到同一页中吗?
回复 使用道具 举报
xiaolong
金牌服务用户   /  发表于:2019-3-28 17:44:31
9#
KevinChen 发表于 2019-3-28 16:57
横向打印,是要把内容都打印到同一页中吗?

对,一个sheet一页
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-3-28 19:12:06
10#
那就根据每个sheet的尺寸,调整PaperSize就可以了,结合zoomFactor
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部