Browse Source

依甲方需求增加坐标转换

Tony Kang 1 year ago
parent
commit
1794fe0b20
1 changed files with 15 additions and 2 deletions
  1. 15 2
      app/public/report/js/rpt_archive.js

+ 15 - 2
app/public/report/js/rpt_archive.js

@@ -438,9 +438,22 @@ let rptArchiveObj = {
         return rst;
     },
     _getPageSignatureInfo: function(pageData, rpt_id) {
+        // 因接口方是这样的单位:A4(297*210 -> pt 814.68 * 595.44),那么需要把像素转换成pt的系数,经过测试发现这个系数就是PDF_SCALE,不用再设置了
         let psInfo = [], psInfoStr = [];
         let offsetX = 0, offsetY = 0; //这个跟导出pdf一致,以防万一有变化
         let controls = pageData[JV.NODE_CONTROL_COLLECTION];
+        const _getAreasProperty = (srcArea) => {
+            const width = (srcArea[JV.IDX_RIGHT] - srcArea[JV.IDX_LEFT]);
+            const height = (srcArea[JV.IDX_BOTTOM] - srcArea[JV.IDX_TOP]);
+            let rst = {
+                Left: srcArea[JV.IDX_LEFT] + offsetX, Top: srcArea[JV.IDX_TOP] + offsetY, width, height, 
+                PtCenterX: +((srcArea[JV.IDX_LEFT] + offsetX + width / 2) * PDF_SCALE).toFixed(2),
+                PtCenterY: +((srcArea[JV.IDX_TOP] + offsetX + height / 2) * PDF_SCALE).toFixed(2),
+                PtWidth: +(width * PDF_SCALE).toFixed(2), PtHeight: +(height * PDF_SCALE).toFixed(2),
+                pages: []
+            };
+            return rst;
+        };
         const _getProperSignatureArea = function(cell, control) {
             // 约定默认长宽比例是2:1,图片分辨率是600*300
             const rst = [0, 0, 0, 0]; // left, top, right, bottom
@@ -512,7 +525,7 @@ let rptArchiveObj = {
             if (idx < 0) {
                 psInfoStr.push(sCell[signNameKey]);
                 let newPsInfo = {'name': sCell[signNameKey], areas: [], company_stamp_areas: [], private_stamp_areas: [], order: psInfoStr.length};
-                let area = {Left: actSignArea[JV.IDX_LEFT] + offsetX, Top: actSignArea[JV.IDX_TOP] + offsetY, width: (actSignArea[JV.IDX_RIGHT] - actSignArea[JV.IDX_LEFT]), height: (actSignArea[JV.IDX_BOTTOM] - actSignArea[JV.IDX_TOP]), pages: []};
+                const area = _getAreasProperty(actSignArea);
                 area.pages.push(pageIdx + 1);
                 newPsInfo[areaKey].push(area);
                 psInfo.push(newPsInfo);
@@ -527,7 +540,7 @@ let rptArchiveObj = {
                     }
                 }
                 if (!hasArea) {
-                    let area = {Left: actSignArea[JV.IDX_LEFT] + offsetX, Top: actSignArea[JV.IDX_TOP] + offsetY, width: (actSignArea[JV.IDX_RIGHT] - actSignArea[JV.IDX_LEFT]), height: (actSignArea[JV.IDX_BOTTOM] - actSignArea[JV.IDX_TOP]), pages: []};
+                    const area = _getAreasProperty(actSignArea);
                     area.pages.push(pageIdx + 1);
                     psInfo[idx][areaKey].push(area);
                 }