|  | @@ -426,53 +426,7 @@ function writeSheets(pageData, paperSize, sharedStrList, stylesObj, isSinglePage
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      return rst;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -function getProperSignatureArea(cell, control) {
 | 
	
		
			
				|  |  | -    // 约定默认长宽比例是2:1,图片分辨率是600*300
 | 
	
		
			
				|  |  | -    const rst = [0, 0, 0, 0]; // left, top, right, bottom
 | 
	
		
			
				|  |  | -    if (cell && cell[JV.PROP_AREA]) {
 | 
	
		
			
				|  |  | -        if (cell.hasOwnProperty('isOrgShow') && cell.isOrgShow) {
 | 
	
		
			
				|  |  | -            // 例外的约定,按原始类型处理
 | 
	
		
			
				|  |  | -            rst[JV.IDX_LEFT] = cell[JV.PROP_AREA][JV.PROP_LEFT];
 | 
	
		
			
				|  |  | -            rst[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP];
 | 
	
		
			
				|  |  | -            rst[JV.IDX_RIGHT] = cell[JV.PROP_AREA][JV.PROP_RIGHT];
 | 
	
		
			
				|  |  | -            rst[JV.IDX_BOTTOM] = cell[JV.PROP_AREA][JV.PROP_BOTTOM];
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -            let width = cell[JV.PROP_AREA][JV.PROP_RIGHT] - cell[JV.PROP_AREA][JV.PROP_LEFT],
 | 
	
		
			
				|  |  | -                height = cell[JV.PROP_AREA][JV.PROP_BOTTOM] - cell[JV.PROP_AREA][JV.PROP_TOP];
 | 
	
		
			
				|  |  | -            if (width > height * 2) {
 | 
	
		
			
				|  |  | -                width = height * 2;
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                height = width / 2;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            switch (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_HORIZON]]) {
 | 
	
		
			
				|  |  | -                case 'left':
 | 
	
		
			
				|  |  | -                    rst[0] = cell[JV.PROP_AREA][JV.PROP_LEFT];
 | 
	
		
			
				|  |  | -                    rst[1] = cell[JV.PROP_AREA][JV.PROP_TOP];
 | 
	
		
			
				|  |  | -                    rst[2] = rst[0] + width;
 | 
	
		
			
				|  |  | -                    rst[3] = rst[1] + height;
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -                case 'right':
 | 
	
		
			
				|  |  | -                    rst[2] = cell[JV.PROP_AREA][JV.PROP_RIGHT];
 | 
	
		
			
				|  |  | -                    rst[3] = cell[JV.PROP_AREA][JV.PROP_BOTTOM];
 | 
	
		
			
				|  |  | -                    rst[0] = rst[2] - width;
 | 
	
		
			
				|  |  | -                    rst[1] = rst[3] - height;
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -                default:
 | 
	
		
			
				|  |  | -                    // center
 | 
	
		
			
				|  |  | -                    rst[0] = (cell[JV.PROP_AREA][JV.PROP_LEFT] + cell[JV.PROP_AREA][JV.PROP_RIGHT] - width) / 2;
 | 
	
		
			
				|  |  | -                    rst[1] = cell[JV.PROP_AREA][JV.PROP_TOP];
 | 
	
		
			
				|  |  | -                    rst[2] = rst[0] + width;
 | 
	
		
			
				|  |  | -                    rst[3] = rst[1] + height;
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    // rst[0] = rst[0] + JpcCanvasOutput.offsetX;
 | 
	
		
			
				|  |  | -    // rst[2] = rst[2] + JpcCanvasOutput.offsetX;
 | 
	
		
			
				|  |  | -    // rst[1] = rst[1] + JpcCanvasOutput.offsetY;
 | 
	
		
			
				|  |  | -    // rst[3] = rst[3] + JpcCanvasOutput.offsetY;
 | 
	
		
			
				|  |  | -    return rst;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  function preAnalyzePos(pageData, sheetData, xPos, yPos, yMultiPos) {
 | 
	
		
			
				|  |  |      let cell;
 | 
	
		
			
				|  |  |      let pos;
 | 
	
	
		
			
				|  | @@ -517,7 +471,7 @@ function preAnalyzePos(pageData, sheetData, xPos, yPos, yMultiPos) {
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  cellControl = cell[JV.PROP_CONTROL];
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            const area = getProperSignatureArea(cell, cellControl);
 | 
	
		
			
				|  |  | +            const area = getProperSignatureArea(cell, cellControl, 0, 0, JV);
 | 
	
		
			
				|  |  |              if (cell.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) >= 0) {
 | 
	
		
			
				|  |  |                  area[JV.IDX_LEFT] = cell[JV.PROP_AREA][JV.PROP_LEFT];
 | 
	
		
			
				|  |  |                  area[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP];
 | 
	
	
		
			
				|  | @@ -543,7 +497,7 @@ function preAnalyzePos(pageData, sheetData, xPos, yPos, yMultiPos) {
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  cellControl = cell[JV.PROP_CONTROL];
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            const area = getProperSignatureArea(cell, cellControl);
 | 
	
		
			
				|  |  | +            const area = getProperSignatureArea(cell, cellControl, 0, 0, JV);
 | 
	
		
			
				|  |  |              if (cell.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) >= 0) {
 | 
	
		
			
				|  |  |                  area[JV.IDX_LEFT] = cell[JV.PROP_AREA][JV.PROP_LEFT];
 | 
	
		
			
				|  |  |                  area[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP];
 | 
	
	
		
			
				|  | @@ -1109,7 +1063,7 @@ function writeDrawing(pageData, sheetData, subSignKeyArr, sheetIdx) {
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              cellControl = signCell[JV.PROP_CONTROL];
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        const area = getProperSignatureArea(signCell, cellControl);
 | 
	
		
			
				|  |  | +        const area = getProperSignatureArea(signCell, cellControl, 0, 0, JV);
 | 
	
		
			
				|  |  |          if (signCell.signature_name.indexOf(JV.SIGNATURE_NAME_DUMMY) >= 0) {
 | 
	
		
			
				|  |  |              area[JV.IDX_LEFT] = signCell[JV.PROP_AREA][JV.PROP_LEFT];
 | 
	
		
			
				|  |  |              area[JV.IDX_TOP] = signCell[JV.PROP_AREA][JV.PROP_TOP];
 |