找回密码
 立即注册

QQ登录

只需一步,快速开始

spaccount

初级会员

24

主题

79

帖子

239

积分

初级会员

积分
239
spaccount
初级会员   /  发表于:2018-11-13 15:36  /   查看:3276  /  回复:5
问题:打印内容不居中?

内容设置:A4大小的基础上略微缩小纸张大小,设置垂直水平居中,去除间距,打印方向设置为横向,

浏览器打印设置:布局横向,纸张A4,边距默认,缩放100,页眉和页脚无

打印代码:
var A4=new GC.Spread.Sheets.Print.PaperSize(9);
var w=A4.Vo*0.89;
var h=A4._v*0.89;
var sheet = GC.Spread.Sheets.Designer.wrapper.spread.getActiveSheet();
sheet.printInfo().paperSize(new GC.Spread.Sheets.Print.PaperSize(w, h));
sheet.printInfo().centering(GC.Spread.Sheets.Print.PrintCentering.both);
sheet.printInfo().margin({ top: 0, bottom: 0, left: 0, right: 0, header: 0, footer: 0 });
sheet.printInfo().orientation(GC.Spread.Sheets.Print.PrintPageOrientation.landscape);
GC.Spread.Sheets.Designer.wrapper.spread.print();


(附件中有模板和打印效果截图)

print.zip

200.4 KB, 下载次数: 108

模板

5 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-11-13 17:56:21
沙发
您在打印时,把浏览器的打印边距设置为“无”,

然后利用printInfo的margin方法来调整上下左右的距离。

margin API:http://help.grapecity.com/spread ... intInfo~margin.html


image.png640714110.png
回复 使用道具 举报
spaccount
初级会员   /  发表于:2018-11-14 09:21:01
板凳
KevinChen 发表于 2018-11-13 17:56
您在打印时,把浏览器的打印边距设置为“无”,

然后利用printInfo的margin方法来调整上下左右的距离。
...

除了跳转浏览器打印设置和margin是否还有别的方法?
按理设置了居中,并且内容并没有空白间距,就不应该在去设置间距才对,调整间距不是间距根本问题的办法
如果让用户再去设置间距会增加使用难度,极大的降低了用户体验
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-11-14 11:10:19
地板
Spread JS 以及其它所有的前端控件,都是通过调用浏览器的打印控件来实现打印操作的,

这是因为Javascript语言的权限由于安全原因被限制,无法直接调用系统的打印。
回复 使用道具 举报
spaccount
初级会员   /  发表于:2018-11-14 11:48:06
5#
KevinChen 发表于 2018-11-14 11:10
Spread JS 以及其它所有的前端控件,都是通过调用浏览器的打印控件来实现打印操作的,

这是因为Javascri ...

我的意思并非是调用系统的打印,而是在spreadjs 的设计器中明确设置了间距是0,内容居中,但是在打印预览的输出上右边却有一定的间距,我们应该解决为什么设置了居中无效,而不是去手动添加间距将内容挤到中间,这不是解决问题的根本办法
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-11-14 15:04:11
6#
您之前的代码调的有些问题,我这边修改了您的代码,调试了居中效果如下:

image.png952898864.png

注意:浏览器打印设置时,边距设置为“无”。

代码如下:

  1. var A4=new GC.Spread.Sheets.Print.PaperSize(GC.Spread.Sheets.Print.PaperKind.a4);
  2.             var sheet = spread.getActiveSheet();
  3.             sheet.printInfo().paperSize(A4);
  4.             sheet.printInfo().centering(GC.Spread.Sheets.Print.PrintCentering.both);
  5.             sheet.printInfo().margin({ top: 0, bottom: 0, left: 0, right: 0, header: 0, footer: 0 });
  6.             sheet.printInfo().orientation(GC.Spread.Sheets.Print.PrintPageOrientation.landscape);
  7.             sheet.printInfo().zoomFactor(0.78);
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部