请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

[已处理] 图片尺寸问题

CTI_ELN
金牌服务用户   /  发表于:2021-12-2 11:03  /   查看:1775  /  回复:5
1金币
版本: spreadjs  v14.0.9

场景描述:签章功能,用户点击签章,然后通过异步获取图片后将图片加载到签章的位置

问题描述:同一套代码设置号图片的宽高,发现在不同的spread的尺寸不一样,而且在sheet页上呈现的图片尺寸与代码设置的不一致;
此外,难道行高也对图片高度有影响?图片大小如何固定?

代码如下:
  1.     /**
  2.     * 签章
  3.     * @param {base64} img
  4.     * @param {string} field
  5.     * @param {object} sheetBindingInfo
  6.     */
  7.     signaturePicture(img, field, sheetBindingInfo, sheet) {
  8.       let picture = sheet.pictures.add(field,img,0,0,100,50);
  9.       // let picture = sheet.pictures.add(field,img);
  10.       let row = sheetBindingInfo[field].row, col = sheetBindingInfo[field].col;
  11.       let cellInfo = getSpanSizeInfo(sheetBindingInfo[field], sheet);
  12.       let rowOffset = cellInfo.height > 50 ? (cellInfo.height - 50) / 2 : 10;
  13.       let colOffset = cellInfo.width > 100 ? (cellInfo.width - 100) / 2 : 10;
  14.       let endRow = cellInfo.rowCount > 1 ? row + cellInfo.rowCount -1 : row + 2;
  15.       let endColumn = cellInfo.colCount > 1 ? col + cellInfo.colCount -1 : col + 1;
  16.       console.log(`row:${row};endRow:${endRow}`);

  17.       picture.width(100);
  18.       picture.height(50);
  19.       picture.dynamicMove(false);
  20.       picture.dynamicSize(false);
  21.       picture.startRow(row);
  22.       picture.startColumn(col);
  23.       picture.endRow(endRow);
  24.       picture.endColumn(endColumn);
  25.       // picture.startRowOffset(rowOffset);
  26.       // picture.endRowOffset(rowOffset);
  27.       // picture.startColumnOffset(colOffset);
  28.       // picture.endColumnOffset(colOffset);
  29.       picture.allowMove(false);
  30.       picture.allowResize(false);
  31.       console.log(picture);
  32.     },
复制代码



在workbook1中:
image.png104353331.png

在workbook2中:
image.png864285888.png

而且就算设置了 rowOffset  和  colOffset  也没用

最佳答案

查看完整内容

这个是旧版本的bug,该问题已在14.2.1中修复,可以看下这个demo

5 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-2 11:03:32
来自 4#
CTI_ELN 发表于 2021-12-2 11:46
你好,我试了一下,发现如果不设置endRow和endColumn的话,图片无法显示

这个是旧版本的bug,该问题已在14.2.1中修复,可以看下这个demo
image.png549079894.png

online.html

1.76 KB, 下载次数: 31

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-2 11:38:50
2#
本帖最后由 Derrick.Jiao 于 2021-12-2 11:40 编辑

你好,出现这个问题是因为endRow和endColumn的影响。

当我们的设置的图片宽高大于设置startRow、startColumn、endRow、endColumn围成的面积时,就会按照一定的比例进行缩放。
image.png953654174.png

因此,如需指定图片宽高,可以不用设置endRow和endColumn。
回复 使用道具 举报
CTI_ELN
金牌服务用户   /  发表于:2021-12-2 11:46:04
3#
Derrick.Jiao 发表于 2021-12-2 11:38
你好,出现这个问题是因为endRow和endColumn的影响。

当我们的设置的图片宽高大于设置startRow、startCo ...

你好,我试了一下,发现如果不设置endRow和endColumn的话,图片无法显示 image.png774524841.png

回复 使用道具 举报
CTI_ELN
金牌服务用户   /  发表于:2021-12-2 13:24:40
5#
Derrick.Jiao 发表于 2021-12-2 12:16
这个是旧版本的bug,该问题已在14.2.1中修复,可以看下这个demo

谢谢,我将版本从14.0.9升级成了14.2.1,不设置endRow和endClumn就可以了
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-2 13:31:40
6#
CTI_ELN 发表于 2021-12-2 13:24
谢谢,我将版本从14.0.9升级成了14.2.1,不设置endRow和endClumn就可以了

不用客气,那这边就结贴了,有新问题欢迎开新帖交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部