找回密码
 立即注册

QQ登录

只需一步,快速开始

是但求其爱

注册会员

3

主题

15

帖子

81

积分

注册会员

积分
81
最新发帖
是但求其爱
注册会员   /  发表于:2021-6-24 17:26  /   查看:3581  /  回复:10
自定义单元格解决首行空格的问题,自定义单元格类型后,编辑渲染都没有问题,但是一打印就发现该单元格的内容会多一些空行,然后段落前空格也出了问题
11942529-16E5-4e9c-A20D-920352904EB4.png

demo.zip

132.65 KB, 下载次数: 75

10 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-24 18:26:15
沙发
本帖最后由 Derrick.Jiao 于 2021-6-25 13:54 编辑

您好,我这边在纯js的环境下测试是正常的,建议您参考这个demo修改。这边初步看了一下,有可能是SpreadJS在框架下的问题,具体这边还需要调查一下。


——————————————————————————————
在CommonJS项目中,类型操作范围不是全局的,打印时无法获取自定义单元格类型。请添加一下代码
  1. GC.Spread.Sheets.getTypeFromString = function(val){
  2.         if(val === 'EnterNewlineCellType')
  3.         { return EnterNewlineCellType; }
  4.       }
复制代码


SpreadJS-自定义单元格打印.zip

3.27 MB, 下载次数: 69

回复 使用道具 举报
是但求其爱
注册会员   /  发表于:2021-6-25 14:44:43
板凳
那就麻烦记录排查下,不可能不用框架吧,查看打印生成的iframe,里面的canvas显示已经有问题了
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-25 14:50:58
地板
是但求其爱 发表于 2021-6-25 14:44
那就麻烦记录排查下,不可能不用框架吧,查看打印生成的iframe,里面的canvas显示已经有问题了

请看楼上的回复,已给出解决方案,添加下面的代码
  1. GC.Spread.Sheets.getTypeFromString = function(val){
  2.         if(val === 'EnterNewlineCellType')
  3.         { return EnterNewlineCellType; }
  4.       }
复制代码


回复 使用道具 举报
是但求其爱
注册会员   /  发表于:2021-6-28 11:31:57
5#
代码修改后,发现单元格如果是宋体字体还好,黑体楷体仿宋这些字体,单元格前面的空格会显示成口字,这是啥原因呢

demo.zip

13.76 MB, 下载次数: 67

回复 使用道具 举报
是但求其爱
注册会员   /  发表于:2021-6-28 11:59:17
6#
找到打开字体文件,发现黑体的.notdef是个口字,宋体.notdef是个空,只能通过字体编辑工具将黑体仿宋楷体.notdef这个字变成空
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-28 13:37:13
7#
是但求其爱 发表于 2021-6-28 11:59
找到打开字体文件,发现黑体的.notdef是个口字,宋体.notdef是个空,只能通过字体编辑工具将黑体仿宋楷体.n ...

应该就是字体的问题了,没有太好的方法,不同的字体对于空的显示会有所不同。
回复 使用道具 举报
是但求其爱
注册会员   /  发表于:2021-6-28 17:53:34
8#
又碰到一个问题,自定义单元格注销enter事件,实际发现ctrl+c也被屏蔽了,想允许用户复制单元格也允许用户复制里面的内容怎么处理呢 demo.png
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-28 18:23:57
9#
是但求其爱 发表于 2021-6-28 17:53
又碰到一个问题,自定义单元格注销enter事件,实际发现ctrl+c也被屏蔽了,想允许用户复制单元格也允许用户 ...

建议您在这里面做个if-else判断,如果是enter就返回true,如果是其他则apply原来的处理方式。现在您写的逻辑,在ctrl的时候返回了false,所以无法复制。
回复 使用道具 举报
是但求其爱
注册会员   /  发表于:2021-6-30 17:49:37
10#
发现用\t替换空格这种方式,导出PDF与在线表格中表现不一样,例如这些单元格都居右,文字中间有空格,在线表格里面是正常的,然而导出pdf中显示不正常,看着像是每个空格缩短了一些,结合之前发现导出PDF\t取的是字体的.notdef,里面是不是有啥关系
demo2.png
demo1.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部