找回密码
 立即注册

QQ登录

只需一步,快速开始

568506343

初级会员

25

主题

54

帖子

261

积分

初级会员

积分
261

微信认证勋章

568506343
初级会员   /  发表于:2018-2-24 16:11  /   查看:4025  /  回复:6
你好:
目前重写了spreadjs的打印放法,问题如下:
1. 将生成的图片的base64编码转化为图片后,图片大小并不满足A4纸张的比例,导致打印时图片会被切分。附件为demo,以及base64所生成的图片(打印生成图片.png)
2. sheet内容过多时,生成图片比较慢,可否优化?

spreadjs_print.zip

2.24 MB, 下载次数: 317

6 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-24 18:16:25
沙发
本帖最后由 ClarkPan 于 2018-2-24 18:17 编辑

1.如果打印内容大于纸张大小,那肯定是会被切分的。这个没办法,因为打印的清晰度调位4以上时候就是转成图片后然后打印,这个方法获取的图片就是转成的图片,所以肯定会被切分的。
2.这个目前没有办法优化,之前应该跟您说过这个方法只是临时的workaround,并不是源生支持的使用方式,推荐做法是导出成PDF。
回复 使用道具 举报
568506343
初级会员   /  发表于:2018-2-24 18:23:32
板凳
可是生成图片的时候制定了职场大小为A4,您可以看下上传的demo。设置完毕后生成的图片还是大于A4的呢
回复 使用道具 举报
568506343
初级会员   /  发表于:2018-2-24 18:27:18
地板
上一条:职场--> 纸张
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-26 14:26:33
5#
您好,原因是这样的, 因为打印时,整个表单高度肯定超出了A4纸张的大小,所以分页了,分页那么会按照A4纸张的高度进行分页,而您的表单的宽度并未撑满A4纸张的宽度,所以导出的图片比例是与A4纸张的比例不符的,打印图片时的设置默认是填充,这样会默认先满足纸张的宽度进行撑满填充,宽度撑满,那么高度就要等比增高,所以这样就导致了您所说的打印比A4纸张大的问题。解决方法两种,一种打印时候设置为收缩值适合,如下图所示
image.png975588378.png
第二种就是调整列宽是的最终比例与A4纸张比例相同。
回复 使用道具 举报
568506343
初级会员   /  发表于:2018-2-26 14:55:16
6#
目前已经在代码中使用了缩放了,您可以看下demo中第 72~81 行。麻烦帮忙看下
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-26 17:54:29
7#
这个算法可能不对,打印时候的纸张大小单位是百分之一英寸,您这个用的单位是像素,而英寸和像素之间的换算比跟显示器的DPI有关系,所以直接这么写是有问题的。
https://wenku.baidu.com/view/b4193bbe1a37f111f1855b79.html
上面的文档是相互间的换算关系,您可以进行参考
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部