Przeglądaj źródła

code sync for PDF output fix

TonyKang 6 lat temu
rodzic
commit
fd53ee6da3

+ 1 - 1
modules/reports/rpt_component/jpc_flow_tab.js

@@ -935,7 +935,7 @@ JpcFlowTabSrv.prototype.createNew = function(){
             if (removeCellIds.length > 0) {
                 //排序,保证一定的顺序,不能用默认的方式(默认方式是针对字符串的简单排序)
                 removeCellIds.sort(function (idx1, idx2) {
-                    return idx1 - idx2;
+                    return parseInt(idx1) - parseInt(idx2);
                 });
                 for (let idx = removeCellIds.length - 1; idx >= 0; idx--) {
                     rstPageCells.splice(removeCellIds[idx], 1);

+ 12 - 0
modules/reports/util/rpt_pdf_util.js

@@ -150,6 +150,7 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
                     restTopH = restH;
                 }
             }
+            let spaceIdxArr = [];
             for (let i = 0; i < values.length; i++) {
                 // area[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP] + i * (height / values.length) + offsetY;
                 // area[JV.IDX_BOTTOM] = cell[JV.PROP_AREA][JV.PROP_TOP] + (i + 1) * (height / values.length) + offsetY;
@@ -158,7 +159,18 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
                 if (values[i] === null || values[i] === undefined || values[i] === 'null') {
                     values[i] = "";
                 }
+                // 因pdfkit输出空格只有一半宽度,需要额外加空格补上 -----------------------------
+                if (typeof(values[i]) === "string") {
+                    for (let j = 0; j < values[i].length; j++) {
+                        if (values[i][j] === ' ') spaceIdxArr.push(j);
+                    }
+                }
+                for (let j = spaceIdxArr.length - 1; j >= 0; j--) {
+                    values[i] = values[i].slice(0, spaceIdxArr[j]) + ' ' + values[i].slice(spaceIdxArr[j]);
+                }
+                // -----------------------------
                 private_drawText(values[i], area, font, control);
+                spaceIdxArr = [];
             }
         }
     }