本帖最后由 进先生 于 2023-5-17 15:30 编辑
需求背景:
需要支持印章打印功能,因此需要开发一个打印预览,由于屏蔽了“在线表格编辑器”,因此,无法使用 File 菜单中的打印预览,需要模拟开发。
目前遇到的问题:
1. 印章定位:印章一般会在页面的右下角,但是通过自己理解的方法操作后,定位的位置与预期有所偏差。
如下图,上下左右四角以及第一页的左下与第二页的左上角分别添加图片。但结果,右边的图片(pic2、pic4)都没有贴边,中间的图片(pic5、pic6)的位置偏上了一些。初步判断为 paperSize 的高度与 addPictureShape 接口的 top 用的不同的单位,但未找到相关接口,麻烦能否给一个右下固定定位的参考 demo 或相关参考文档
- let paperSize= printInfo.paperSize().toJSON();
- var pic1 = sheet.shapes.addPictureShape('pic1', splogoImg, 0, 0, 100, 100);
- var pic2 = sheet.shapes.addPictureShape('pic2', splogoImg, paperSize.width - 100, 0, 100, 100);
- var pic3 = sheet.shapes.addPictureShape('pic3', splogoImg, 0, (pageCount * paperSize.height) - 100, 100, 100);
- var pic4 = sheet.shapes.addPictureShape('pic4', splogoImg, pageSize.width - 100, (pageCount * paperSize.height) - 100, 100, 100);
复制代码
2. 图片缩放问题:当列数较多时,打印会出现多列被分割成多页的现象,因此,添加 printInfo.fitPagesWide(1),让所有列在一页显示。但是此属性会将页面整体压缩,包括印章图片,从而导致打印出来的印章相对于页面位置发生变化,且印章大小也会变小,与真实印章表现有所差异(现实中印章应该是固定大小)。
查看api 可知,通过 zoomFactor 接口获取到的缩放系数,不过获取到的数字是 1。因此,该如何处理,可是的印章图片相对于页面位置与尺寸不变?
|
|