Browse Source

打印页边距 sync

TonyKang 4 years ago
parent
commit
541a3afd22

+ 12 - 3
app/public/report/js/rpt_preview_common.js

@@ -45,7 +45,7 @@ function printPageLoading() {
 
 function showPreviewData(svgArr, actAreaArr, scaleFactor, pageSize, orientation, orgPixelSize) {
     let orgHeight = 793, orgWidth = 1122;
-    let DFT_MARGIN = 5;
+    let DFT_MARGIN = 2;
     if (pageSize === 'A3') {
         orgHeight = 1122;
         orgWidth = 793 * 2;
@@ -62,17 +62,26 @@ function showPreviewData(svgArr, actAreaArr, scaleFactor, pageSize, orientation,
 
     for (let i = 0; i < svgArr.length; i++) {
         let offsetHeight = 0, offsetWidth = 0;
+        let paddingStr = '';
         if (actAreaArr) {
+            paddingStr = `padding: ${actAreaArr[i].Top}px 0px 0px ${actAreaArr[i].Left}px`;
+            if (actAreaArr[i].Right > actAreaArr[i].Bottom) {
+                //横向,需要重新调整padding
+                paddingStr = `padding: ${actAreaArr[i].Left}px 0px 0px ${orgHeight - actAreaArr[i].Bottom}px`;
+            }
             offsetWidth = actAreaArr[i].Left + (pageWidth - actAreaArr[i].Right) - DFT_MARGIN;
             offsetHeight = actAreaArr[i].Top + (pageHeight - actAreaArr[i].Bottom) - DFT_MARGIN;
             if (orgPixelSize[0] > orgPixelSize[1]) {
                 //横向强制改纵向(系统是以纵向为准),那么计算offset的方式会有所不同
                 offsetWidth = actAreaArr[i].Top + (pageWidth - actAreaArr[i].Bottom) - DFT_MARGIN;
                 //横向转纵向时,还得考虑左上角转右上角的Left与Top之间的差,否则坐标还是会有偏差
-                offsetHeight = actAreaArr[i].Left + (pageHeight - actAreaArr[i].Right) - (actAreaArr[i].Left - actAreaArr[i].Top) - DFT_MARGIN;
+                // offsetHeight = actAreaArr[i].Left + (pageHeight - actAreaArr[i].Right) - (actAreaArr[i].Left - actAreaArr[i].Top) - DFT_MARGIN;
+                //新方式下,没那么复杂了
+                offsetHeight = actAreaArr[i].Left + (pageHeight - actAreaArr[i].Right) - DFT_MARGIN;
             }
         }
-        let div = $('<div class="pageBreak"></div>');
+        // let div = $('<div class="pageBreak"></div>');
+        let div = $(`<div class="pageBreak" style="${paddingStr}"></div>`);
         div.append($(svgArr[i].join("")));
         $(div).find("svg").each(function(cIdx,elementSvg){
             elementSvg.setAttribute('height', pageHeight - offsetHeight);

+ 6 - 8
app/public/report/js/rpt_print.js

@@ -180,10 +180,9 @@ function buildSignatureCellSvg(cell, styles, controls, pageMergeBorder, rptMerge
     ;
     let HtoVStr = "";
     if (isHtoV) {
-        //HtoVStr = ` transform="translate(`+ pixelSize[1] + `,0) rotate(90)"`;
-        // HtoVStr = ` transform="translate(`+ (actArea.Bottom - actArea.Top + 5) + `,0) rotate(90)"`;
-        HtoVStr = ` transform="translate(`+ (actArea.Bottom - actArea.Top + 5) + `,` + (actArea.Left - actArea.Top ) + `) rotate(90)"`;
-        //console.log(actArea);
+        // HtoVStr = ` transform="translate(`+ (actArea.Bottom - actArea.Top + 5) + `,` + (actArea.Left - actArea.Top ) + `) rotate(90)"`;
+        //引用了padding后,top坐标不用考虑offset了
+        HtoVStr = ` transform="translate(${(actArea.Bottom - actArea.Top + 2)},0) rotate(90)"`;
     }
     if (style) {
         let leftBS = getActualBorderStyle(cell, styles, mergeBandStyle, (pageMergeBorder)?pageMergeBorder:rptMergeBorder[JV.PROP_AREA], JV.PROP_LEFT);
@@ -244,10 +243,9 @@ function buildCellSvg(cell, fonts, styles, controls, pageMergeBorder, rptMergeBo
     ;
     let HtoVStr = "";
     if (isHtoV) {
-        //HtoVStr = ` transform="translate(`+ pixelSize[1] + `,0) rotate(90)"`;
-        // HtoVStr = ` transform="translate(`+ (actArea.Bottom - actArea.Top + 5) + `,0) rotate(90)"`;
-        HtoVStr = ` transform="translate(`+ (actArea.Bottom - actArea.Top + 5) + `,` + (actArea.Left - actArea.Top ) + `) rotate(90)"`;
-        //console.log(actArea);
+        // HtoVStr = ` transform="translate(`+ (actArea.Bottom - actArea.Top + 5) + `,` + (actArea.Left - actArea.Top ) + `) rotate(90)"`;
+        //引用了padding后,top坐标不用考虑offset了
+        HtoVStr = ` transform="translate(${(actArea.Bottom - actArea.Top + 2)},0) rotate(90)"`;
     }
     if (style) {
         let leftBS = getActualBorderStyle(cell, styles, mergeBandStyle, (pageMergeBorder)?pageMergeBorder:rptMergeBorder[JV.PROP_AREA], JV.PROP_LEFT);

+ 1 - 1
app/reports/util/rpt_tmp_file_sweep.js

@@ -21,7 +21,7 @@ function chkIsRemoveType(file) {
 
 const jobObj = {
     started: false,
-    createJob: function(rule, rootPath) {
+    createJob(rule, rootPath) {
         let localRule = rule;
         if (!localRule) {
             // setup schedule rule