Browse Source

打印预览边距问题(默认边距情况下)

TonyKang 5 years ago
parent
commit
ebd2da0d98

+ 11 - 2
web/building_saas/report/js/rpt_preview_common.js

@@ -43,7 +43,7 @@ function loading() {
 
 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;
@@ -60,7 +60,14 @@ 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]) {
@@ -70,7 +77,9 @@ function showPreviewData(svgArr, actAreaArr, scaleFactor, pageSize, orientation,
                 offsetHeight = actAreaArr[i].Left + (pageHeight - actAreaArr[i].Right) - (actAreaArr[i].Left - actAreaArr[i].Top) - DFT_MARGIN;
             }
         }
-        let div = $('<div class="pageBreak"></div>');
+        // let div = $('<div class="pageBreak"></div>');
+        let div = $(`<div class="pageBreak" style="${paddingStr}"></div>`);
+        // style="margin-left: 2cm; margin-top: 2cm;"
         div.append($(svgArr[i].join("")));
         $(div).find("svg").each(function(cIdx,elementSvg){
             elementSvg.setAttribute('height', pageHeight - offsetHeight);

+ 7 - 4
web/building_saas/report/js/rpt_print.js

@@ -73,10 +73,13 @@ let rptPrintHelper = {
                 actAreaOffsetX = actAreaArr[idx].Left;
                 actAreaOffsetY = actAreaArr[idx].Top;
                 if (pixelSize[0] > pixelSize[1]) {
+                    //引用了padding,这里要处理下了
                 }
+                // console.log('actAreaOffsetX: ' + actAreaOffsetX);
+                // console.log('actAreaOffsetY: ' + actAreaOffsetY);
             }
             let svgPageArr = [];
-            console.log(pixelSize);
+            // console.log(pixelSize);
             svgPageArr.push("<svg width='" + pixelSize[0] + "' height='" + pixelSize[1] + "'>");
             // let adjustY = 0.5 * ((idx + 1) % 2);
             let adjustY = 0.5;
@@ -132,9 +135,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)"`;
+        // HtoVStr = ` transform="translate(`+ (actArea.Bottom - actArea.Top + 5) + `,` + (actArea.Left - actArea.Top ) + `) rotate(90)"`;
+        //引用了padding后,top坐标不用考虑offset了
+        HtoVStr = ` transform="translate(${(actArea.Bottom - actArea.Top)},0) rotate(90)"`;
         //console.log(actArea);
     }
     if (style) {