找回密码
 立即注册

QQ登录

只需一步,快速开始

是但求其爱

注册会员

3

主题

15

帖子

81

积分

注册会员

积分
81
最新发帖
是但求其爱
注册会员   /  发表于:2021-4-28 18:03  /   查看:2963  /  回复:9
文字在表格里加粗倾斜效果均显示正常,但是打印出来就没有了,提供一个ssjson以及打印demo angular.zip (151.11 KB, 下载次数: 65)

13 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-4-28 19:01:47
沙发
您好,经验证在所有的windows系统上存在该问题,mac上目前测试均没问题。这个问题我已经反馈给了研发部门。问题编号:SJS-8605。需要排除一下是产品的问题还是操作系统或浏览器本身的问题。有进一步的反馈我会第一时间在这里回复您。

点评

mac里没发现问题,windows系统谷歌内核有问题,火狐浏览器打印显示又没问题  发表于 2021-4-29 09:32
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-4-29 09:47:54
板凳
您好,经我们测试在windows下的Chromium Edge都有这样的问题,IE和FireFox内核正常。估计应该是浏览器内核本身的bug,跟SpreadJS应该没有关系。
我们能够提出的解决方案就是调整SpreadJS打印的质量参考下面代码:
sheet.printInfo().qualityFactor(4);

调整SpreadJS的打印质量为4。但这样做会导致打印响应的时间变慢(提高质量会牺牲时间),中间的利弊需要您来进行取舍。

点评

通过调整打印质量4-8确实发现能够解决文字加粗倾斜效果消失的问题,但是导出pdf在谷歌和火狐上还是有问题,设置了打印质量导出pdf也不好使  发表于 2021-4-29 10:34
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-4-29 11:19:56
地板
您好,我这边测试没问题我是直接打印后调整为导出PDF
image.png308045348.png

cn.pdf

449.97 KB, 下载次数: 63

点评

请问目前有没有正常点的解决思路,直接打印通过调整打印质量能解决打印加粗倾斜字效果消失问题,但是调整质量后,把表格背景调整成白色,左边和上边会多出来一条线,而直接用spreadjs自己的pdf导出仍然没有解决问题  发表于 2021-5-6 09:48
是直接调用葡萄城的导出pdf  发表于 2021-4-29 11:23
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-6 16:46:34
5#
请问目前有没有正常点的解决思路,直接打印通过调整打印质量能解决打印加粗倾斜字效果消失问题,但是调整质量后,把表格背景调整成白色,左边和上边会多出来一条线,而直接用spreadjs自己的pdf导出仍然没有解决问题
--------
这个是浏览器打印预览自己显示的问题,其实实际上并没有左边和上边多出来的线,您可以看一下实际打印出的效果,如下图所示:
image.png843499755.png
并且您也可以直接在打印预览上放大,放大之后也是显示不出来您说的线的。如下图所示:
image.png601589049.png
回复 使用道具 举报
是但求其爱
注册会员   /  发表于:2021-5-6 17:19:07
6#
ClarkPan 发表于 2021-5-6 16:46
请问目前有没有正常点的解决思路,直接打印通过调整打印质量能解决打印加粗倾斜字效果消失问题,但是调整质 ...

嗯嗯,左边框和上边框我在代码里设置一下解决了,导出pdf倾斜和加粗我怀疑是没有注入对应的倾斜加粗字体,暂时的问题是设置了打印质量后,通过浏览器的打印或者浏览器自带的打印另存为pdf,打印机出来的文字有锯齿,好像是设置了打印质量后文字在一张图片上,另存为pdf也是图片型pdf,不设置的话文字型pdf
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-6 17:43:36
7#
是的,SpreadJS由于用了canvas进行界面绘制,所以他的打印原理是将canvas转成高清图片交给浏览器去打印。打印质量的高低则表示为在同一个像素点上重绘的次数。由于是转成高清图片,在部分针式打印机效果会有锯齿或者模糊的情况存在,这个主要有以下几点原因:
一,打印机的DPI远大于浏览器本身的DPI,因为是打印图片,在打印过程中打印机不会去自动进行补正(文字是会的,图片不会)。所以高DPI打印低DPI的图片会出现锯齿状的情况。
解决办法就是尽量将显示的DPI与打印机的DPI设置的差不多,或者增大qualityFactor打印质量的设置,最大是8。但这么做会导致打印响应变慢。
如果上述操作都做了仍然解决不了问题,那么可能就是下面的原因了。
二,打印机本身的驱动或者型号造成。这种除了更换驱动或者打印机外没有更好办法。
回复 使用道具 举报
是但求其爱
注册会员   /  发表于:2021-5-6 17:56:53
8#
ClarkPan 发表于 2021-5-6 17:43
是的,SpreadJS由于用了canvas进行界面绘制,所以他的打印原理是将canvas转成高清图片交给浏览器去打印。打 ...

使用spreadjs自带导出pdf,中文字体比如宋体,难道需要注入宋体常规,加粗,倾斜,倾斜加粗四种字体才能正常显示文字的加粗倾斜效果,可是宋体倾斜和倾斜加粗这种字体需要哪儿去找
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-6 18:49:37
9#
收到,我帮你找一找
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-7 15:38:22
10#
本帖最后由 ClarkPan 于 2021-5-7 15:40 编辑
是但求其爱 发表于 2021-5-6 17:56
使用spreadjs自带导出pdf,中文字体比如宋体,难道需要注入宋体常规,加粗,倾斜,倾斜加粗四种字体才能 ...

SpreadJS由于采用的是注册字体这种方式实现导出PDF,所以粗体和斜体这些字体都需要单独注册才行。这些都是第三方设计的,我找到一个宋体粗体的发给你。您可以再找找其他的。
如果觉得比较麻烦的话,推荐导出PDF可以通过葡萄城的另一款后端类Excel组件GcExcel来完成,他可以直接读取SpreadJS序列化的ssjson,然后将他转化为PDF导出

simsunbd.ttf

13.33 MB, 下载次数: 57

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部