TonyKang 6 лет назад
Сommit
b92d71db15

+ 12 - 0
.gitignore

@@ -0,0 +1,12 @@
+node_modules/
+.git/
+dist/
+.idea/
+.vscode/
+tmp/*.xlsx
+tmp/*.pdf
+tmp/*.jsp
+test/unit/logs
+*.log
+modules/reports/util/pdf_base_files/*.ttf
+modules/reports/util/pdf_base_files/*.ttc

+ 686 - 0
const/report_defined_properties.js

@@ -0,0 +1,686 @@
+/**
+ * Created by Tony on 2019/12/26.
+ */
+
+module.exports = {
+    ctrls: [
+        {
+            ID: 'Default',
+            Wrap: 'T',
+            Shrink: 'F',
+            Horizon: 'left',
+            ShowZero: 'T',
+            Vertical: 'bottom',
+            CfgDispName: '默认',
+            CloseOutput: 'F',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Title',
+            Wrap: 'T',
+            Shrink: 'F',
+            Horizon: 'center',
+            ShowZero: 'T',
+            Vertical: 'center',
+            CfgDispName: '标题',
+            CloseOutput: 'F',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Header',
+            Wrap: 'F',
+            Shrink: 'F',
+            Horizon: 'left',
+            ShowZero: 'T',
+            Vertical: 'center',
+            CfgDispName: '表头',
+            CloseOutput: 'F',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Header_Right',
+            Wrap: 'F',
+            Shrink: 'F',
+            Horizon: 'right',
+            ShowZero: 'T',
+            Vertical: 'center',
+            CfgDispName: '表头_右',
+            CloseOutput: 'F',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Footer',
+            Wrap: 'F',
+            Shrink: 'F',
+            Horizon: 'left',
+            ShowZero: 'T',
+            Vertical: 'center',
+            CfgDispName: '表尾',
+            CloseOutput: 'F',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Footer_Right',
+            Wrap: 'F',
+            Shrink: 'F',
+            Horizon: 'right',
+            ShowZero: 'T',
+            Vertical: 'center',
+            CfgDispName: '表尾_右',
+            CloseOutput: 'F',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Column',
+            Wrap: 'T',
+            Shrink: 'F',
+            Horizon: 'center',
+            ShowZero: 'F',
+            Vertical: 'center',
+            CfgDispName: '表栏',
+            CloseOutput: 'F',
+            ShrinkFirst: 'F',
+            FillAfterWrap: 'T',
+        }, {
+            ID: 'Column_Left',
+            Wrap: 'T',
+            Shrink: 'F',
+            Horizon: 'left',
+            ShowZero: 'F',
+            Vertical: 'center',
+            CfgDispName: '表栏_左',
+            CloseOutput: 'F',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Column_Right',
+            Wrap: 'T',
+            Shrink: 'F',
+            Horizon: 'right',
+            ShowZero: 'F',
+            Vertical: 'center',
+            CfgDispName: '表栏_右',
+            CloseOutput: 'F',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Content_Left',
+            Wrap: 'F',
+            Shrink: 'T',
+            Horizon: 'left',
+            ShowZero: 'F',
+            Vertical: 'bottom',
+            CfgDispName: '正文内容',
+            CloseOutput: 'T',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Content_Right',
+            Wrap: 'F',
+            Shrink: 'T',
+            Horizon: 'right',
+            ShowZero: 'F',
+            Vertical: 'bottom',
+            CfgDispName: '正文内容_右',
+            CloseOutput: 'T',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Content_Center',
+            Wrap: 'F',
+            Shrink: 'T',
+            Horizon: 'center',
+            ShowZero: 'F',
+            Vertical: 'bottom',
+            CfgDispName: '正文内容_中',
+            CloseOutput: 'T',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'NewContent_Left',
+            Wrap: 'F',
+            Shrink: 'T',
+            Horizon: 'left',
+            ShowZero: 'F',
+            Vertical: 'center',
+            CfgDispName: '正文内容(新)',
+            CloseOutput: 'T',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'NewContent_Right',
+            Wrap: 'F',
+            Shrink: 'T',
+            Horizon: 'right',
+            ShowZero: 'F',
+            Vertical: 'center',
+            CfgDispName: '正文内容(新)_右',
+            CloseOutput: 'T',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'NewContent_Center',
+            Wrap: 'F',
+            Shrink: 'T',
+            Horizon: 'center',
+            ShowZero: 'F',
+            Vertical: 'center',
+            CfgDispName: '正文内容(新)_中',
+            CloseOutput: 'T',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Currency',
+            Wrap: 'F',
+            Shrink: 'T',
+            Horizon: 'right',
+            ShowZero: 'F',
+            Vertical: 'center',
+            CfgDispName: '金额型',
+            CloseOutput: 'F',
+            ShrinkFirst: 'T',
+        }, {
+            ID: 'Left_Top',
+            Wrap: 'T',
+            Shrink: 'F',
+            Horizon: 'left',
+            ShowZero: 'T',
+            Vertical: 'top',
+            CfgDispName: '上靠_左',
+            CloseOutput: 'T',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Center_Top',
+            Wrap: 'T',
+            Shrink: 'F',
+            Horizon: 'center',
+            ShowZero: 'T',
+            Vertical: 'top',
+            CfgDispName: '上靠_中',
+            CloseOutput: 'T',
+            ShrinkFirst: 'F',
+        }, {
+            ID: 'Right_Top',
+            Wrap: 'T',
+            Shrink: 'F',
+            Horizon: 'right',
+            ShowZero: 'T',
+            Vertical: 'top',
+            CfgDispName: '上靠_右',
+            CloseOutput: 'T',
+            ShrinkFirst: 'F',
+        },
+    ],
+    fonts: [
+        {
+            ID: 'ReportTitle_Main',
+            Name: '宋体',
+            FontBold: 'T',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '32',
+            FontItalic: 'F',
+            CfgDispName: '主标题',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'ReportTitle_Vice_1',
+            Name: '宋体',
+            FontBold: 'T',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '22',
+            FontItalic: 'F',
+            CfgDispName: '副标题',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'ReportTitle_Vice_2',
+            Name: '宋体',
+            FontBold: 'T',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '18',
+            FontItalic: 'F',
+            CfgDispName: '副标题2',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'HeaderColumn',
+            Name: '宋体',
+            FontBold: 'F',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '12',
+            FontItalic: 'F',
+            CfgDispName: '栏头',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'Header',
+            Name: '宋体',
+            FontBold: 'F',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '12',
+            FontItalic: 'F',
+            CfgDispName: '表头',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'FooterColumn',
+            Name: '宋体',
+            FontBold: 'F',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '12',
+            FontItalic: 'F',
+            CfgDispName: '栏尾',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'Footer',
+            Name: '宋体',
+            FontBold: 'F',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '12',
+            FontItalic: 'F',
+            CfgDispName: '表尾',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'GrandTotal',
+            Name: '宋体',
+            FontBold: 'F',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '12',
+            FontItalic: 'F',
+            CfgDispName: '总合计',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'SectionTotal',
+            Name: '宋体',
+            FontBold: 'F',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '12',
+            FontItalic: 'F',
+            CfgDispName: '章合计',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'Content',
+            Name: '宋体',
+            FontBold: 'F',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '12',
+            FontItalic: 'F',
+            CfgDispName: '正文内容',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'Content_Narrow',
+            Name: 'Arial Narrow',
+            FontBold: 'F',
+            FontAngle: '0',
+            FontColor: 'BLACK',
+            FontHeight: '12',
+            FontItalic: 'F',
+            CfgDispName: '正文内容-窄体',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'Header_V1',
+            Name: '宋体',
+            FontBold: 'F',
+            FontAngle: '90',
+            FontColor: 'BLACK',
+            FontHeight: '12',
+            FontItalic: 'F',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        }, {
+            ID: 'Header_V2',
+            Name: '宋体',
+            FontBold: 'F',
+            FontAngle: '-90',
+            FontColor: 'BLACK',
+            FontHeight: '12',
+            FontItalic: 'F',
+            FontStrikeOut: 'F',
+            FontUnderline: 'F',
+        },
+    ],
+    styles: [
+        {
+            ID: 'Default_None',
+            CfgDispName: '空白',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                },
+            ],
+        }, {
+            ID: 'Default',
+            CfgDispName: '默认',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                },
+            ],
+        }, {
+            ID: 'Default_Normal',
+            CfgDispName: '正常',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                },
+            ],
+        }, {
+            ID: 'Label_Underline',
+            CfgDispName: '字符底线',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                },
+            ],
+        }, {
+            ID: 'Label_Left',
+            CfgDispName: '左边线',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                },
+            ],
+        }, {
+            ID: 'Label_Right',
+            CfgDispName: '右边线',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                },
+            ],
+        }, {
+            ID: 'Label_Top',
+            CfgDispName: '上边线',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                },
+            ],
+        }, {
+            ID: 'Label_LeftTop',
+            CfgDispName: '左上边线',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                },
+            ],
+        }, {
+            ID: 'Label_LeftBottom',
+            CfgDispName: '左下边线',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                },
+            ],
+        }, {
+            ID: 'Label_RightTop',
+            CfgDispName: '右上边线',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                },
+            ],
+        }, {
+            ID: 'Label_RightBottom',
+            CfgDispName: '右下边线',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                },
+            ],
+        }, {
+            ID: 'Label_TopBottom',
+            CfgDispName: '上下边线',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '1',
+                },
+            ],
+        }, {
+            ID: 'BORDER_ALL_AROUND',
+            CfgDispName: '报表边框',
+            border_style: [
+                {
+                    Color: 'BLACK',
+                    Position: 'Left',
+                    DashStyle: 'SOLID',
+                    LineWeight: '2.0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Right',
+                    DashStyle: 'SOLID',
+                    LineWeight: '2.0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Top',
+                    DashStyle: 'SOLID',
+                    LineWeight: '2.0',
+                }, {
+                    Color: 'BLACK',
+                    Position: 'Bottom',
+                    DashStyle: 'SOLID',
+                    LineWeight: '2.0',
+                },
+            ],
+        },
+    ],
+};
+

+ 281 - 0
modules/output/excel_base_files/theme1.xml

@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office 主题">
+	<a:themeElements>
+		<a:clrScheme name="Office">
+			<a:dk1>
+				<a:sysClr val="windowText" lastClr="000000"/>
+			</a:dk1>
+			<a:lt1>
+				<a:sysClr val="window" lastClr="FFFFFF"/>
+			</a:lt1>
+			<a:dk2>
+				<a:srgbClr val="1F497D"/>
+			</a:dk2>
+			<a:lt2>
+				<a:srgbClr val="EEECE1"/>
+			</a:lt2>
+			<a:accent1>
+				<a:srgbClr val="4F81BD"/>
+			</a:accent1>
+			<a:accent2>
+				<a:srgbClr val="C0504D"/>
+			</a:accent2>
+			<a:accent3>
+				<a:srgbClr val="9BBB59"/>
+			</a:accent3>
+			<a:accent4>
+				<a:srgbClr val="8064A2"/>
+			</a:accent4>
+			<a:accent5>
+				<a:srgbClr val="4BACC6"/>
+			</a:accent5>
+			<a:accent6>
+				<a:srgbClr val="F79646"/>
+			</a:accent6>
+			<a:hlink>
+				<a:srgbClr val="0000FF"/>
+			</a:hlink>
+			<a:folHlink>
+				<a:srgbClr val="800080"/>
+			</a:folHlink>
+		</a:clrScheme>
+		<a:fontScheme name="Office">
+			<a:majorFont>
+				<a:latin typeface="Cambria"/>
+				<a:ea typeface=""/>
+				<a:cs typeface=""/>
+				<a:font script="Jpan" typeface="MS Pゴシック"/>
+				<a:font script="Hang" typeface="맑은 고딕"/>
+				<a:font script="Hans" typeface="宋体"/>
+				<a:font script="Hant" typeface="新細明體"/>
+				<a:font script="Arab" typeface="Times New Roman"/>
+				<a:font script="Hebr" typeface="Times New Roman"/>
+				<a:font script="Thai" typeface="Tahoma"/>
+				<a:font script="Ethi" typeface="Nyala"/>
+				<a:font script="Beng" typeface="Vrinda"/>
+				<a:font script="Gujr" typeface="Shruti"/>
+				<a:font script="Khmr" typeface="MoolBoran"/>
+				<a:font script="Knda" typeface="Tunga"/>
+				<a:font script="Guru" typeface="Raavi"/>
+				<a:font script="Cans" typeface="Euphemia"/>
+				<a:font script="Cher" typeface="Plantagenet Cherokee"/>
+				<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>
+				<a:font script="Tibt" typeface="Microsoft Himalaya"/>
+				<a:font script="Thaa" typeface="MV Boli"/>
+				<a:font script="Deva" typeface="Mangal"/>
+				<a:font script="Telu" typeface="Gautami"/>
+				<a:font script="Taml" typeface="Latha"/>
+				<a:font script="Syrc" typeface="Estrangelo Edessa"/>
+				<a:font script="Orya" typeface="Kalinga"/>
+				<a:font script="Mlym" typeface="Kartika"/>
+				<a:font script="Laoo" typeface="DokChampa"/>
+				<a:font script="Sinh" typeface="Iskoola Pota"/>
+				<a:font script="Mong" typeface="Mongolian Baiti"/>
+				<a:font script="Viet" typeface="Times New Roman"/>
+				<a:font script="Uigh" typeface="Microsoft Uighur"/>
+			</a:majorFont>
+			<a:minorFont>
+				<a:latin typeface="Calibri"/>
+				<a:ea typeface=""/>
+				<a:cs typeface=""/>
+				<a:font script="Jpan" typeface="MS Pゴシック"/>
+				<a:font script="Hang" typeface="맑은 고딕"/>
+				<a:font script="Hans" typeface="宋体"/>
+				<a:font script="Hant" typeface="新細明體"/>
+				<a:font script="Arab" typeface="Arial"/>
+				<a:font script="Hebr" typeface="Arial"/>
+				<a:font script="Thai" typeface="Tahoma"/>
+				<a:font script="Ethi" typeface="Nyala"/>
+				<a:font script="Beng" typeface="Vrinda"/>
+				<a:font script="Gujr" typeface="Shruti"/>
+				<a:font script="Khmr" typeface="DaunPenh"/>
+				<a:font script="Knda" typeface="Tunga"/>
+				<a:font script="Guru" typeface="Raavi"/>
+				<a:font script="Cans" typeface="Euphemia"/>
+				<a:font script="Cher" typeface="Plantagenet Cherokee"/>
+				<a:font script="Yiii" typeface="Microsoft Yi Baiti"/>
+				<a:font script="Tibt" typeface="Microsoft Himalaya"/>
+				<a:font script="Thaa" typeface="MV Boli"/>
+				<a:font script="Deva" typeface="Mangal"/>
+				<a:font script="Telu" typeface="Gautami"/>
+				<a:font script="Taml" typeface="Latha"/>
+				<a:font script="Syrc" typeface="Estrangelo Edessa"/>
+				<a:font script="Orya" typeface="Kalinga"/>
+				<a:font script="Mlym" typeface="Kartika"/>
+				<a:font script="Laoo" typeface="DokChampa"/>
+				<a:font script="Sinh" typeface="Iskoola Pota"/>
+				<a:font script="Mong" typeface="Mongolian Baiti"/>
+				<a:font script="Viet" typeface="Arial"/>
+				<a:font script="Uigh" typeface="Microsoft Uighur"/>
+			</a:minorFont>
+		</a:fontScheme>
+		<a:fmtScheme name="Office">
+			<a:fillStyleLst>
+				<a:solidFill>
+					<a:schemeClr val="phClr"/>
+				</a:solidFill>
+				<a:gradFill rotWithShape="1">
+					<a:gsLst>
+						<a:gs pos="0">
+							<a:schemeClr val="phClr">
+								<a:tint val="50000"/>
+								<a:satMod val="300000"/>
+							</a:schemeClr>
+						</a:gs>
+						<a:gs pos="35000">
+							<a:schemeClr val="phClr">
+								<a:tint val="37000"/>
+								<a:satMod val="300000"/>
+							</a:schemeClr>
+						</a:gs>
+						<a:gs pos="100000">
+							<a:schemeClr val="phClr">
+								<a:tint val="15000"/>
+								<a:satMod val="350000"/>
+							</a:schemeClr>
+						</a:gs>
+					</a:gsLst>
+					<a:lin ang="16200000" scaled="1"/>
+				</a:gradFill>
+				<a:gradFill rotWithShape="1">
+					<a:gsLst>
+						<a:gs pos="0">
+							<a:schemeClr val="phClr">
+								<a:shade val="51000"/>
+								<a:satMod val="130000"/>
+							</a:schemeClr>
+						</a:gs>
+						<a:gs pos="80000">
+							<a:schemeClr val="phClr">
+								<a:shade val="93000"/>
+								<a:satMod val="130000"/>
+							</a:schemeClr>
+						</a:gs>
+						<a:gs pos="100000">
+							<a:schemeClr val="phClr">
+								<a:shade val="94000"/>
+								<a:satMod val="135000"/>
+							</a:schemeClr>
+						</a:gs>
+					</a:gsLst>
+					<a:lin ang="16200000" scaled="0"/>
+				</a:gradFill>
+			</a:fillStyleLst>
+			<a:lnStyleLst>
+				<a:ln w="9525" cap="flat" cmpd="sng" algn="ctr">
+					<a:solidFill>
+						<a:schemeClr val="phClr">
+							<a:shade val="95000"/>
+							<a:satMod val="105000"/>
+						</a:schemeClr>
+					</a:solidFill>
+					<a:prstDash val="solid"/>
+				</a:ln>
+				<a:ln w="25400" cap="flat" cmpd="sng" algn="ctr">
+					<a:solidFill>
+						<a:schemeClr val="phClr"/>
+					</a:solidFill>
+					<a:prstDash val="solid"/>
+				</a:ln>
+				<a:ln w="38100" cap="flat" cmpd="sng" algn="ctr">
+					<a:solidFill>
+						<a:schemeClr val="phClr"/>
+					</a:solidFill>
+					<a:prstDash val="solid"/>
+				</a:ln>
+			</a:lnStyleLst>
+			<a:effectStyleLst>
+				<a:effectStyle>
+					<a:effectLst>
+						<a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0">
+							<a:srgbClr val="000000">
+								<a:alpha val="38000"/>
+							</a:srgbClr>
+						</a:outerShdw>
+					</a:effectLst>
+				</a:effectStyle>
+				<a:effectStyle>
+					<a:effectLst>
+						<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0">
+							<a:srgbClr val="000000">
+								<a:alpha val="35000"/>
+							</a:srgbClr>
+						</a:outerShdw>
+					</a:effectLst>
+				</a:effectStyle>
+				<a:effectStyle>
+					<a:effectLst>
+						<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0">
+							<a:srgbClr val="000000">
+								<a:alpha val="35000"/>
+							</a:srgbClr>
+						</a:outerShdw>
+					</a:effectLst>
+					<a:scene3d>
+						<a:camera prst="orthographicFront">
+							<a:rot lat="0" lon="0" rev="0"/>
+						</a:camera>
+						<a:lightRig rig="threePt" dir="t">
+							<a:rot lat="0" lon="0" rev="1200000"/>
+						</a:lightRig>
+					</a:scene3d>
+					<a:sp3d>
+						<a:bevelT w="63500" h="25400"/>
+					</a:sp3d>
+				</a:effectStyle>
+			</a:effectStyleLst>
+			<a:bgFillStyleLst>
+				<a:solidFill>
+					<a:schemeClr val="phClr"/>
+				</a:solidFill>
+				<a:gradFill rotWithShape="1">
+					<a:gsLst>
+						<a:gs pos="0">
+							<a:schemeClr val="phClr">
+								<a:tint val="40000"/>
+								<a:satMod val="350000"/>
+							</a:schemeClr>
+						</a:gs>
+						<a:gs pos="40000">
+							<a:schemeClr val="phClr">
+								<a:tint val="45000"/>
+								<a:shade val="99000"/>
+								<a:satMod val="350000"/>
+							</a:schemeClr>
+						</a:gs>
+						<a:gs pos="100000">
+							<a:schemeClr val="phClr">
+								<a:shade val="20000"/>
+								<a:satMod val="255000"/>
+							</a:schemeClr>
+						</a:gs>
+					</a:gsLst>
+					<a:path path="circle">
+						<a:fillToRect l="50000" t="-80000" r="50000" b="180000"/>
+					</a:path>
+				</a:gradFill>
+				<a:gradFill rotWithShape="1">
+					<a:gsLst>
+						<a:gs pos="0">
+							<a:schemeClr val="phClr">
+								<a:tint val="80000"/>
+								<a:satMod val="300000"/>
+							</a:schemeClr>
+						</a:gs>
+						<a:gs pos="100000">
+							<a:schemeClr val="phClr">
+								<a:shade val="30000"/>
+								<a:satMod val="200000"/>
+							</a:schemeClr>
+						</a:gs>
+					</a:gsLst>
+					<a:path path="circle">
+						<a:fillToRect l="50000" t="50000" r="50000" b="50000"/>
+					</a:path>
+				</a:gradFill>
+			</a:bgFillStyleLst>
+		</a:fmtScheme>
+	</a:themeElements>
+	<a:objectDefaults/>
+	<a:extraClrSchemeLst/>
+</a:theme>

BIN
modules/output/pdf_base_files/Smart.ttf


BIN
modules/output/pdf_base_files/Smart_bold.ttf


BIN
modules/output/pdf_base_files/Smart_bold_italic.ttf


BIN
modules/output/pdf_base_files/Smart_italic.ttf


BIN
modules/output/pdf_base_files/arial.ttf


BIN
modules/output/pdf_base_files/simhei.ttf


BIN
modules/output/pdf_base_files/simhei_bold.ttf


BIN
modules/output/pdf_base_files/simhei_bold_italic.ttf


BIN
modules/output/pdf_base_files/simhei_italic.ttf


BIN
modules/output/pdf_base_files/simkai.ttf


BIN
modules/output/pdf_base_files/simkai_bold.ttf


BIN
modules/output/pdf_base_files/simkai_bold_italic.ttf


BIN
modules/output/pdf_base_files/simkai_italic.ttf


+ 21 - 0
package.json

@@ -0,0 +1,21 @@
+{
+  "name": "common_rpt_export",
+  "version": "1.0.0",
+  "description": "common excel pdf export for all Smartcost projects",
+  "main": "startService.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "repository": {
+    "type": "git",
+    "url": "http://192.168.1.41:3000/tonykang/CommonReportExport.git"
+  },
+  "dependencies": {
+    "express": "^4.13.1",
+    "jszip": "^3.1.3",
+    "node-schedule": "^1.3.0",
+    "pdfkit": "^0.8.2"
+  },
+  "author": "Tony Kang",
+  "license": "ISC"
+}

+ 8 - 0
startService.js

@@ -0,0 +1,8 @@
+/**
+ * Created by Tony on 2020/3/10.
+ */
+
+const express = require('express');
+
+let app = express();
+let _rootDir = __dirname;