找回密码
 立即注册

QQ登录

只需一步,快速开始

li$spreadjs

注册会员

2

主题

7

帖子

36

积分

注册会员

积分
36
最新发帖

[已处理] 打印问题

li$spreadjs
注册会员   /  发表于:2018-7-2 10:29  /   查看:6454  /  回复:11
spreadjs V11.0.0版本打印显示位置错乱,并且内容不全 image.png563521422.png ,这是原图样式 image.png144958800.png ,其中单元格样式为上传下载类型的单元格,上传附件后打印出现错乱,请问是什么原因引起,应如何处理?
打印处的代码如下:
  1. var sheet = spread.getActiveSheet();
  2.         var printInfo = new GC.Spread.Sheets.Print.PrintInfo();
  3.             printInfo.rowEnd(150);
  4.                 printInfo.columnEnd(120)
  5.                 printInfo.margin(0);
  6.                 printInfo.orientation(GC.Spread.Sheets.Print.PrintPageOrientation.landscape);
  7.                 printInfo.paperSize(new GC.Spread.Sheets.Print.PaperSize(GC.Spread.Sheets.Print.PaperKind.a4));
  8.                 printInfo.zoomFactor(0.95);
  9.                 printInfo.centering(GC.Spread.Sheets.Print.PrintCentering);
  10.         spread.print(spread.getSheetIndex(sheet.name()));
复制代码

11 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-2 17:08:39
沙发
因为打印这部分需要一点一点进行调试,所以您提供一下,上传后系列化的ssjson,我详细帮您调试一下。
回复 使用道具 举报
li$spreadjs
注册会员   /  发表于:2018-7-3 09:52:20
板凳
ClarkPan 发表于 2018-7-2 17:08
因为打印这部分需要一点一点进行调试,所以您提供一下,上传后系列化的ssjson,我详细帮您调试一下。

该附件为导出的JSON文件,请帮忙调试一下,谢谢

demo.zip

838 Bytes, 下载次数: 273

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-3 15:01:07
地板
帮您调了一下,您按照我下面的设置试一下
  1. var printInfo = new GC.Spread.Sheets.Print.PrintInfo();
  2.                         //设置边距为0
  3.                         printInfo.margin(0,0,0,0,0,0);
  4.                         //设置不打印边框
  5.                         printInfo.showBorder(false);
  6.                         //设置不打印网格线
  7.                         printInfo.showGridLine(false);
  8.                         //不打印行头
  9.                         printInfo.showRowHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);
  10.                         //不打印列头
  11.                         printInfo.showColumnHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);
  12.                         //设置打印起始列与终止列
  13.                         printInfo.columnStart(7);
  14.                         printInfo.columnEnd(10);
  15.                         //设置打印水平居中
  16.                         printInfo.centering(GC.Spread.Sheets.Print.PrintCentering.horizontal);
  17.                         //纵向打印
  18.                         printInfo.orientation(GC.Spread.Sheets.Print.PrintPageOrientation.portrait);
  19.                         //设置打印纸张为A4纸
  20.                         printInfo.paperSize(new GC.Spread.Sheets.Print.PaperSize(GC.Spread.Sheets.Print.PaperKind.a4));
  21.                        
  22.                         sheet.printInfo(printInfo);
复制代码
回复 使用道具 举报
li$spreadjs
注册会员   /  发表于:2018-7-3 16:40:40
5#
我设置的单元格为上传控件后并且上传文件保存成功,当再次打开该设计页面时文件名在模板上能正常回显,但是打印的时候却显示不出来文件名称。但是双击该单元格后不做任何操作,再次点击打印后文件名就能正常显示。

原始页面:
image.png155079955.png

打印页面:
image.png791141662.png

双击单元格后的打印状态:
image.png138130797.png

请问是什么原因导致的?如何解决此问题。。谢谢
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-3 18:13:11
6#
这个您在这个单元格设置了什么,感觉上是下载还是上传文件的MD5码
回复 使用道具 举报
li$spreadjs
注册会员   /  发表于:2018-7-4 10:51:29
7#
上传的文件是普通的文件,文件上传后文件名已经显示在模板上了,就是在打印的时候显示不出文件名,须双击单元格后再次去进行打印时才能显示出文件名称,附件是对单元格的属性设置的代码

DesignAttachmentCellType.zip

3.33 KB, 下载次数: 266

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-4 18:46:39
8#
objlist是什么东西,我这边到这里报错了。您可以将不相干的逻辑删除掉在重新上传一下,以便我这边能够重现问题。
回复 使用道具 举报
li$spreadjs
注册会员   /  发表于:2018-7-5 10:09:16
9#
该附件为一个完整的上传附件demo,初始化时默认赋值回显数据后,打印不出附件名称,但是双击(0,0)单元格后再次点击打印时,附件名称即正常显示。

AttachmentCellType.zip

584.64 KB, 下载次数: 283

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-7-5 17:58:52
10#
知道问题原因了。两个问题:
1.首先该单元格默认时候的value是空,打印时候会进行判断,如果所有单元格为空就不打印。这也就是为什么第一次打印是空白页面的原因
2.就是您需要在您的自定义单元格加入typeName,因为打印的时候会进行序列化,自定义的内容序列化时需要加入typeName:
function AttachmentCellType(options) {
    var defaultOptions = {
        fileId: "",
        fileName: "",
        uploadCallBack: false,
        downloadCallBack: false,
        deleteCallBack: false
    };
    options = $.extend({}, defaultOptions, options);
    this.fileId = options.fileId;
    this.fileName = options.fileName;
    this.uploadCallBack = options.uploadCallBack;
    this.downloadCallBack = options.downloadCallBack;
    this.deleteCallBack = options.deleteCallBack;
    this.typeName = "AttachmentCellType";
}
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部