シートの倍率を変更するとシェイプの位置がずれる

文書番号 : 84744     文書種別 : 不具合     登録日 : 2019/12/18     最終更新日 : 2020/01/22
文書を印刷する
対象製品
SpreadJS(Ver.10.x.x -)
状況
修正済み
詳細
シェイプをシート貼り付けた後でSpreadの表示倍率を変更した場合、シェイプの位置がずれてしまいます。
なお、本現象は表示倍率を1.5や2.0などの0.5ずつの倍率に変更した場合は発生しません。

【再現手順】
1.以下のサンプルコードを作成する
★サンプルコード(JavaScript)
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
initSpread(spread);
function initSpread(spread) {
let sheet = spread.getActiveSheet();
//シェイプを追加します
addCustomShape(sheet);
//表示倍率を変更します
sheet.zoom(1.28);
}
function addCustomShape(sheet) {

let model = {
  options: {
    fill: {
      type: 1,
      color: "rgba(0,0,255,1)",
      transparency: 0.5
    },
    stroke: {
      type: 1,
      color: "rgba(0,255,0,1)"
    },
    textFormatOptions: {
      text: "テスト",
      font: "MS ゴシック 12px",
      textDirection: "rotate90",
      horizontalAlignment: 1,
      verticalAlignment: 1,
      wrapTextInShape: true,
      allowTextToOverflowShape: true,
      fill: {
        color: "rgba(255,0,0,1)"
      }
    }
  },
  path: [
    [
      ["L", 0, 0],
      ["L", "=width", 0],
      ["L", "=width", "=height"],
      ["L", 0, "=height"],
      ["Z"]
    ]
  ]
};

let shape = sheet.shapes.add(null, model);
//シェイプをH10セルに配置します
shape.startRow(9);
shape.startColumn(7);
shape.endRow(10);
shape.endColumn(8);
shape.startRowOffset(0);
shape.startColumnOffset(0);
shape.endRowOffset(0);
shape.endColumnOffset(0);
shape.rotate("=0");
}

2.ブラウザでサンプルコードを確認する
サンプルコードでは、シェイプをH10セルに配置していますが、シェイプの位置を確認するとシェイプが左上にずれていることが分かります。
回避方法
SpreadJS (Ver.13.0.4)で修正済み