本帖最后由 Matthew.Xue 于 2025-4-2 16:14 编辑
您好,有必要给您介绍一下SpreadJS打印的原理。
SpreadJS的打印功能,本质上是根据用户在SpreadJS中的PrintInfo配置,生成图片,并传输给浏览器的打印接口,浏览器接受到打印请求后,会弹出您截图中的弹框,此时浏览器也可以再设置一次打印的方向、纸张等信息,这些配置和SpreadJS中PrintInfo的配置是无关的,浏览器没有提供接口来修改打印弹框中的配置,SpreadJS也无法监听到用户在浏览器弹框中修改打印方向的行为,从而改变图片的内容。
您在截图中修改打印方向,就是在浏览器的打印弹窗中修改的,此时SpreadJS传给浏览器的内容(图片)已经确定了,就相当于您打印一张图片,修改打印方向当然会对打印的结果有影响。
如果您不希望受到浏览器打印弹窗的影响,可以尝试spread.savePDF方法,此方法可以直接导出PDF,不经过浏览器的打印弹框,并且导出的不是图片,而是可复制的文本类型。但是需要注意的是,用savePDF方法时您需要提前注册字体,否则有可能造成字符乱码。注册字体的demo:
注册pdf字体
|