Просмотр исходного кода

Merge branch '1.0.0_online' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost into 1.0.0_online

zhongzewei 8 лет назад
Родитель
Сommit
8705880b3f

BIN
modules/reports/util/pdf_base_files/simhei.ttf


BIN
modules/reports/util/pdf_base_files/simhei_bold.ttf


BIN
modules/reports/util/pdf_base_files/simhei_bold_italic.ttf


BIN
modules/reports/util/pdf_base_files/simhei_italic.ttf


BIN
modules/reports/util/pdf_base_files/simkai.ttf


BIN
modules/reports/util/pdf_base_files/simkai_bold.ttf


BIN
modules/reports/util/pdf_base_files/simkai_bold_italic.ttf


BIN
modules/reports/util/pdf_base_files/simkai_italic.ttf


BIN
modules/reports/util/pdf_base_files/simsun_1.ttf


BIN
modules/reports/util/pdf_base_files/simsun_1_bold.ttf


BIN
modules/reports/util/pdf_base_files/simsun_1_bold_italic.ttf


BIN
modules/reports/util/pdf_base_files/simsun_1_italic.ttf


+ 28 - 8
modules/reports/util/rpt_pdf_util.js

@@ -16,11 +16,27 @@ const uuidV1 = require('uuid/v1');
 // Smart.ttf: 宋体(常规)
 // Smart-italic.ttf: 宋体(斜体)
 // 目前不支持下划线
+let fontMapObj = {
+    "宋体": "simsun_1"
+    ,"楷体": "simkai"
+    ,"黑体": "simhei"
+    // ,"Arial": "arial"
+};
 
 module.exports = {
     export_pdf_file:export_pdf_file
 }
 
+function getActualFont(mapName, isBold, isItalic) {
+    let rst = "simsun_1";
+    if (fontMapObj[mapName]) {
+        let boldStr = isBold?"_bold":"";
+        let italicStr = isItalic?"_italic":"";
+        rst = fontMapObj[mapName] + boldStr + italicStr;
+    }
+    return rst;
+}
+
 function export_pdf_file (pageData, paperSize, fName, callback) {
     let offsetX= 10;
     let offsetY=10;
@@ -145,17 +161,20 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
     function private_drawText(val, area, font, control) {
         let dftFontHeight = 12;
         let output = [];
+        let fontFile = __dirname + '/pdf_base_files/simkai.ttf';
         if (font) {
             dftFontHeight = 1 * font[JV.FONT_PROPS[1]];
             let dftFontBold = font[JV.FONT_PROPS[3]];
             let dftFontItalic = font[JV.FONT_PROPS[4]];
-            if (dftFontBold && dftFontBold === 'T') {
-                doc.font(__dirname+'/pdf_base_files/hwxsb.ttf');
-            }else if(dftFontItalic && dftFontItalic === 'T'){
-                doc.font(__dirname+'/pdf_base_files/Smart-italic.ttf');
-            }else {
-                doc.font(__dirname+'/pdf_base_files/Smart.ttf');
-            }
+            fontFile = __dirname + '/pdf_base_files/' + getActualFont(font[JV.FONT_PROPS[0]], (dftFontBold === 'T'), (dftFontItalic === 'T')) + '.ttf';
+            // doc.font(__dirname + '/pdf_base_files/' + fontFile + '.ttf');
+            // if (dftFontBold && dftFontBold === 'T') {
+            //     doc.font(__dirname+'/pdf_base_files/hwxsb.ttf');
+            // }else if(dftFontItalic && dftFontItalic === 'T'){
+            //     doc.font(__dirname+'/pdf_base_files/Smart-italic.ttf');
+            // }else {
+            //     doc.font(__dirname+'/pdf_base_files/Smart.ttf');
+            // }
             doc.fontSize(dftFontHeight);
         }
         let options={};
@@ -238,7 +257,8 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
             }
             doc.rotate(font.FontAngle,rotateOptions);
         }
-        doc.text(val,output[0], output[1],options);
+        // doc.text(val,output[0], output[1],options);
+        doc.font(fontFile).text(val,output[0], output[1],options);
         doc.restore();
     }
 

+ 5 - 1
test/unit/reports/test_rpt_test_template.js

@@ -55,6 +55,7 @@ let rptTplDataFacade = require("../../../modules/reports/facade/rpt_tpl_data_fac
 
 import rptDataExtractor from "../../../modules/reports/util/rpt_construct_data_util";
 import rpt_xl_util from "../../../modules/reports/util/rpt_excel_util";
+import rpt_pdf_util from "../../../modules/reports/util/rpt_pdf_util";
 
 let fs = require('fs');
 //设置Date Format函数
@@ -74,7 +75,7 @@ test('测试 - 测试模板啦: ', function (t) {
                 try {
                     // fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/ConstructionCost/tmp/rptTplRawDataObject_测试模板.jsp");
                     let tplData = rptDataUtil.assembleData(rawDataObj);
-                    fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/ConstructionCost/tmp/rptTplRawDataAfterCacl_测试模板.jsp");
+                    // fsUtil.writeObjToFile(rawDataObj, "D:/GitHome/ConstructionCost/tmp/rptTplRawDataAfterCacl_测试模板.jsp");
                     // fsUtil.writeObjToFile(tplData, "D:/GitHome/ConstructionCost/tmp/rptTplAssembledData_测试模板.jsp");
                     //it's time to build the report!!!
                     let printCom = JpcEx.createNew();
@@ -90,6 +91,9 @@ test('测试 - 测试模板啦: ', function (t) {
                         // rpt_xl_util.exportExcel(pageRst, pagesize, "local_test_rpt_excel", true, null, null, function(uuidName){
                         //     console.log("excel uuid: " + uuidName);
                         // });
+                        rpt_pdf_util.export_pdf_file(pageRst, pagesize, 'local_test_rpt_pdf', function(uuidName){
+                            console.log("pdf uuid: " + uuidName);
+                        });
                     } else {
                         console.log("oh! no pages were created!");
                     }

+ 1 - 1
web/building_saas/report/js/rpt_main.js

@@ -114,7 +114,7 @@ let zTreeOprObj = {
             //2. font name
             domArrs.push("<div class='col-3'>");
             domArrs.push("<select class='form-control input-sm' id='fontName_" + fontPropSuffix + "' onchange='rptControlObj.changeFontMain(\"" + font.CfgDispName + "\", \"Name\", this)'>");
-            domArrs.push("<option>宋体</option><option>楷体</option><option>黑体</option><option>Arial</option>");
+            domArrs.push("<option>宋体</option><option>楷体</option><option>黑体</option>");
             domArrs.push("</select>");
             domArrs.push("</div>");
             //3. font height