TonyKang пре 7 година
родитељ
комит
3d316115ed

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

@@ -316,10 +316,10 @@ JpcFlowTabSrv.prototype.createNew = function(){
                         if (values.length > rst) rst = values.length;
                         let font = private_get_font(tab_field[JV.PROP_FONT]);
                         if (font) {
-                            doc.font(__dirname.slice(0, __dirname.length - 14) + '/util/pdf_base_files/Smart.ttf');
+                            doc.font(__dirname.slice(0, __dirname.length - 14) + '/util/pdf_base_files/simsun_1.ttf');
                             doc.fontSize(parseInt(font[JV.FONT_PROPS[JV.FONT_PROP_IDX_HEIGHT]]));
                         } else {
-                            doc.font(__dirname.slice(0, __dirname.length - 14) + '/util/pdf_base_files/Smart.ttf');
+                            doc.font(__dirname.slice(0, __dirname.length - 14) + '/util/pdf_base_files/simsun_1.ttf');
                             doc.fontSize(12);
                         }
                         let hasSplitStr = false, splitStrArr = [];

BIN
modules/reports/util/pdf_base_files/Smart-italic.ttf


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


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


+ 22 - 0
modules/reports/util/rpt_font_util.js

@@ -0,0 +1,22 @@
+/**
+ * Created by Tony on 2018/8/2.
+ */
+
+let fontMapObj = {
+    "宋体": "simsun_1"
+    ,"楷体": "simkai"
+    ,"黑体": "simhei"
+    // ,"Arial": "arial"
+};
+// 目前不支持下划线
+
+module.exports = {
+    getActualFont: getActualFont
+}
+
+function getActualFont(mapName, isBold, isItalic) {
+    let rst = "simsun_1";
+    if (fontMapObj[mapName]) rst = fontMapObj[mapName];
+    rst = rst + (isBold?"_bold":"") + (isItalic?"_italic":"");
+    return rst;
+}

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

@@ -12,31 +12,14 @@ let DPI = jpcCmnHelper.getScreenDPI()[0];
 let JV = require('../rpt_component/jpc_value_define');
 const uuidV1 = require('uuid/v1');
 
-// hwxsb.ttf: 华文中宋
-// Smart.ttf: 宋体(常规)
-// Smart-italic.ttf: 宋体(斜体)
+let fontUtil = require('./rpt_font_util');
+
 // 目前不支持下划线
-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;
@@ -166,15 +149,7 @@ function export_pdf_file (pageData, paperSize, fName, callback) {
             dftFontHeight = 1 * font[JV.FONT_PROPS[1]];
             let dftFontBold = font[JV.FONT_PROPS[3]];
             let dftFontItalic = font[JV.FONT_PROPS[4]];
-            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');
-            // }
+            fontFile = __dirname + '/pdf_base_files/' + fontUtil.getActualFont(font[JV.FONT_PROPS[0]], (dftFontBold === 'T'), (dftFontItalic === 'T')) + '.ttf';
             doc.fontSize(dftFontHeight);
         }
         let options={};

+ 5 - 9
modules/reports/util/rpt_svg_util.js

@@ -7,6 +7,7 @@ let JV = require('../rpt_component/jpc_value_define');
 let pdf = require('pdfkit');
 let jpcCmnHelper = require('../rpt_component/helper/jpc_helper_common');
 let SCREEN_DPI = jpcCmnHelper.getScreenDPI();
+let fontUtil = require('./rpt_font_util');
 
 module.exports = {
     exportSvgStr: function (pagesData, offsetX, offsetY) {
@@ -109,6 +110,9 @@ function buildText(destRst, cell, font, control, offsetX, offsetY, adjustY, pdf_
     let orgFontHeight = parseInt(font[JV.FONT_PROPS[JV.FONT_PROP_IDX_HEIGHT]]);
     let fontWeight = (font[JV.FONT_PROPS[JV.FONT_PROP_IDX_BOLD]] === 'T')?"bold":"normal";
     let fontStyle = (font[JV.FONT_PROPS[JV.FONT_PROP_IDX_ITALIC]] === 'T')?"italic":"normal";
+    let dftFontBold = font[JV.FONT_PROPS[3]];
+    let dftFontItalic = font[JV.FONT_PROPS[4]];
+    let fontFile = __dirname + '/pdf_base_files/' + fontUtil.getActualFont(font[JV.FONT_PROPS[0]], (dftFontBold === 'T'), (dftFontItalic === 'T')) + '.ttf';
     let left = parseInt(cell[JV.PROP_AREA][JV.PROP_LEFT]) + offsetX + 0.5,
         right = parseInt(cell[JV.PROP_AREA][JV.PROP_RIGHT]) + offsetX + 0.5,
         top = parseInt(cell[JV.PROP_AREA][JV.PROP_TOP]) + offsetY + adjustY,
@@ -142,15 +146,7 @@ function buildText(destRst, cell, font, control, offsetX, offsetY, adjustY, pdf_
     for (let vidx = 0; vidx < values.length; vidx++) {
         //check whether need to adjust the font size
         let dftFontHeight = orgFontHeight;
-        let dftFontBold = font[JV.FONT_PROPS[3]];
-        let dftFontItalic = font[JV.FONT_PROPS[4]];
-        if (dftFontBold && dftFontBold === 'T') {
-            pdf_doc.font(__dirname+'/pdf_base_files/hwxsb.ttf');
-        }else if(dftFontItalic && dftFontItalic === 'T'){
-            pdf_doc.font(__dirname+'/pdf_base_files/Smart-italic.ttf');
-        }else {
-            pdf_doc.font(__dirname+'/pdf_base_files/Smart.ttf');
-        }
+        pdf_doc.font(fontFile);
         pdf_doc.fontSize(dftFontHeight);
         while ((right - left) <= pdf_doc.widthOfString(values[vidx])) {
             if (dftFontHeight > 6) {