| 
					
				 | 
			
			
				@@ -1059,10 +1059,14 @@ function writeDrawings(pageData, signKeyArr, signPathArr, isSinglePage, signShee 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const rst = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // console.log('isSinglePage: ' + isSinglePage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (isSinglePage) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log('singlePage! '); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         rst.push(writeDrawing(pageData, null, signKeyArr[0])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log('pageData! '); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (let i = 0; i < pageData.items.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (signSheetIdxArr[i]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // console.log('signKeyArr[' + i + ']'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // console.log(signKeyArr[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 rst.push(writeDrawing(pageData, pageData.items[i], signKeyArr[i])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1165,7 +1169,10 @@ function writeDrawing(pageData, sheetData, subSignKeyArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     preAnalyzePos(pageData, sheetData, xPos, yPos, yMultiPos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     rst.push('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     rst.push('<xdr:wsDr xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // console.log('subSignKeyArr'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // console.log(subSignKeyArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (sheetData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log('sheetData'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let startPicIdx = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (const sCell of sheetData[JV.PROP_SIGNATURE_CELLS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (subSignKeyArr.indexOf(sCell.signature_name) >= 0) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1180,6 +1187,8 @@ function writeDrawing(pageData, sheetData, subSignKeyArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log('pageData.items[0][JV.PROP_SIGNATURE_CELLS]'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log(pageData.items[1][JV.PROP_SIGNATURE_CELLS]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // total data in one sheet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let rowOffset = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (let i = 0; i < pageData.items.length; i++) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1190,6 +1199,11 @@ function writeDrawing(pageData, sheetData, subSignKeyArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (subSignKeyArr.indexOf(sCell.signature_name) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     private_setSheetDrawingCellData(sCell, tmpPos, startPicIdx, rowOffset); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     startPicIdx++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     console.log('index < 0 subSignKeyArr: '); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     console.log(subSignKeyArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     console.log('sCell.signature_name'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     console.log(sCell.signature_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (const sCell of shtItemData[JV.PROP_WATERMARK_CELLS]) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1283,7 +1297,7 @@ function createDummySignatureCell(pageData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, signSheetIdxArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, signSheetIdxArr, isSinglePage) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 备注:电子签名是以图形的方式处理,一页可以有多个签名,多页的签名基本是引用同样的图片,在这里先处理一下,后期统一引用。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //      另:以后的图片(在电子签名(signature_cells)以外的图片)会单独处理(如计算草图、水印等) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     let rst = false; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1298,8 +1312,16 @@ function _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // for (const page of pageData.items) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for (let pageIdx = 0; pageIdx < pageData.items.length; pageIdx++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const page = pageData.items[pageIdx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        signKeyArr.push([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        signPathArr.push([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (isSinglePage) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (pageIdx === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                signKeyArr.push([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                signPathArr.push([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            signKeyArr.push([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            signPathArr.push([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const curSignIdx = signKeyArr.length - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         signSheetIdxArr[pageIdx] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log('page index: ' + pageIdx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log(page[JV.PROP_SIGNATURE_CELLS]); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1313,12 +1335,12 @@ function _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //     rst = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //     signSheetIdxArr[pageIdx] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (signKeyArr[pageIdx].indexOf(signature.signature_name) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (signKeyArr[curSignIdx].indexOf(signature.signature_name) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (signature.pic) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         const signPath = { path: null, pic: null }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        signPathArr[pageIdx].push(signPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        signPathArr[curSignIdx].push(signPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         signPath.pic = signature.pic; // 历史报表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        signKeyArr[pageIdx].push(signature.signature_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        signKeyArr[curSignIdx].push(signature.signature_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         rst = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         signSheetIdxArr[pageIdx] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1327,16 +1349,16 @@ function _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 // console.log('signature.signature_name: ' + signature.signature_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 if (role.sign_pic) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     const signPath = { path: null, pic: null }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    signPathArr[pageIdx].push(signPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    signPathArr[curSignIdx].push(signPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     signPath.pic = role.sign_pic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    signKeyArr[pageIdx].push(signature.signature_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    signKeyArr[curSignIdx].push(signature.signature_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     rst = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     signSheetIdxArr[pageIdx] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } else if (role.sign_path) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     const signPath = { path: null, pic: null }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    signPathArr[pageIdx].push(signPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    signPathArr[curSignIdx].push(signPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     signPath.path = role.sign_path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    signKeyArr[pageIdx].push(signature.signature_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    signKeyArr[curSignIdx].push(signature.signature_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     rst = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     signSheetIdxArr[pageIdx] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1350,15 +1372,17 @@ function _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, roleRel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (page[JV.PROP_WATERMARK_CELLS] && page[JV.PROP_WATERMARK_CELLS].length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 水印,单独处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const waterMarkCell = page[JV.PROP_WATERMARK_CELLS][0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // console.log('waterMarkCell'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // console.log(waterMarkCell); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const signPath = { path: null, pic: null }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            signPathArr[pageIdx].push(signPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            signPath.pic = waterMarkCell.pic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            signPath.path = waterMarkCell.path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            signKeyArr[pageIdx].push(waterMarkCell.signature_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            rst = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            signSheetIdxArr[pageIdx] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (signKeyArr[curSignIdx].indexOf(waterMarkCell.signature_name) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // console.log('waterMarkCell'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // console.log(waterMarkCell); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const signPath = { path: null, pic: null }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                signPathArr[curSignIdx].push(signPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                signPath.pic = waterMarkCell.pic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                signPath.path = waterMarkCell.path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                signKeyArr[curSignIdx].push(waterMarkCell.signature_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                signSheetIdxArr[pageIdx] = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return rst; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1393,7 +1417,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log(thisRoleRel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // const hasSignature = false; // 暂时不支持电子签名、草图导出excel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const hasSignature = _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, thisRoleRel, signSheetIdxArr); // 因草图的关系,thisRoleRel是否为null就不是充要的条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const hasSignature = _checkAndSetSignatureCache(pageData, signKeyArr, signPathArr, thisRoleRel, signSheetIdxArr, isSinglePage); // 因草图的关系,thisRoleRel是否为null就不是充要的条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log('signKeyArr'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log(signKeyArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log('signPathArr'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1473,6 +1497,7 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 5.2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const zip_drawings = zip_xl.folder('drawings'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             data = writeDrawings(pageData, signKeyArr, signPathArr, isSinglePage, signSheetIdxArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // data = writeDrawings(pageData, signKeyArr, signPathArr, false, signSheetIdxArr); // 备注:这里根本不需要考虑是否single page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log('isSinglePage: ' + isSinglePage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // console.log(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (let psIdx = 0; psIdx < data.length; psIdx++) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1603,9 +1628,25 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 加分页符(分页符要在外部处理好)------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 _setupPgBrks(pageDataArray[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 加分页符结束------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let maxY = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let minY = 100000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const checkAndResetCellYPos = function(cells) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (cells && cells.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        for (const cell of cells) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (maxY < cell[JV.PROP_AREA][JV.PROP_BOTTOM]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                maxY = cell[JV.PROP_AREA][JV.PROP_BOTTOM]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (minY > cell[JV.PROP_AREA][JV.PROP_TOP]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                minY = cell[JV.PROP_AREA][JV.PROP_TOP]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            cell[JV.PROP_AREA][JV.PROP_BOTTOM] += offsetY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            cell[JV.PROP_AREA][JV.PROP_TOP] += offsetY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (let j = 0; j < pageDataArray[i].items.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let maxY = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let minY = 100000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    maxY = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    minY = 100000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (pageDataArray[i].items[j][JV.PAGE_SPECIAL_MERGE_POS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let pos = pageDataArray[i].items[j][JV.PAGE_SPECIAL_MERGE_POS][JV.PROP_TOP][0] + offsetY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         mergeBand[JV.PROP_TOP].push(pos); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1621,43 +1662,16 @@ module.exports = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         mergeBand[JV.PROP_BOTTOM].push(pageDataArray[i][JV.BAND_PROP_MERGE_BAND][JV.PROP_BOTTOM] + offsetY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 1.2.1 重新设置普通cells的Top Bottom坐标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for (const cell of pageDataArray[i].items[j][JV.PROP_CELLS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // for (let k = 0; k < pageDataArray[i].items[j][JV.PROP_CELLS].length; k++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (maxY < cell[JV.PROP_AREA][JV.PROP_BOTTOM]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            maxY = cell[JV.PROP_AREA][JV.PROP_BOTTOM]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (minY > cell[JV.PROP_AREA][JV.PROP_TOP]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            minY = cell[JV.PROP_AREA][JV.PROP_TOP]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        cell[JV.PROP_AREA][JV.PROP_BOTTOM] += offsetY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        cell[JV.PROP_AREA][JV.PROP_TOP] += offsetY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    checkAndResetCellYPos(pageDataArray[i].items[j][JV.PROP_CELLS]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 1.2.2 重新设置电子签名cells的Top Bottom坐标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for (const cell of pageDataArray[i].items[j][JV.PROP_SIGNATURE_CELLS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (maxY < cell[JV.PROP_AREA][JV.PROP_BOTTOM]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            maxY = cell[JV.PROP_AREA][JV.PROP_BOTTOM]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (minY > cell[JV.PROP_AREA][JV.PROP_TOP]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            minY = cell[JV.PROP_AREA][JV.PROP_TOP]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // console.log('before'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // console.log(cell); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        cell[JV.PROP_AREA][JV.PROP_BOTTOM] += offsetY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        cell[JV.PROP_AREA][JV.PROP_TOP] += offsetY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // console.log('after'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        // console.log(cell); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    checkAndResetCellYPos(pageDataArray[i].items[j][JV.PROP_SIGNATURE_CELLS]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // 1.2.3 重新设置电子签名日期cells的Top Bottom坐标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for (const cell of pageDataArray[i].items[j][JV.PROP_SIGNATURE_DATE_CELLS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (maxY < cell[JV.PROP_AREA][JV.PROP_BOTTOM]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            maxY = cell[JV.PROP_AREA][JV.PROP_BOTTOM]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (minY > cell[JV.PROP_AREA][JV.PROP_TOP]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            minY = cell[JV.PROP_AREA][JV.PROP_TOP]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        cell[JV.PROP_AREA][JV.PROP_BOTTOM] += offsetY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        cell[JV.PROP_AREA][JV.PROP_TOP] += offsetY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    checkAndResetCellYPos(pageDataArray[i].items[j][JV.PROP_SIGNATURE_DATE_CELLS]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 1.2.4 重置电子签名审核意见cells的Top Bottom坐标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    checkAndResetCellYPos(pageDataArray[i].items[j][JV.PROP_SIGNATURE_AUDIT_CELLS]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 1.2.5 重置水印的Top Bottom坐标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    checkAndResetCellYPos(pageDataArray[i].items[j][JV.PROP_WATERMARK_CELLS]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const bottomGap = Math.round((pageDataArray[i][JV.NODE_PAGE_INFO][JV.NODE_PAGE_SIZE][1] - parseFloat(pageDataArray[i][JV.NODE_PAGE_INFO][JV.NODE_MARGINS][JV.PROP_BOTTOM]) / 2.54) * DPI) - maxY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     offsetY += (maxY - minY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (bottomGap > 10) { 
			 |