IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    lodop组件套打

    zongyan86发表于 2022-09-30 06:13:21
    love 0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    // 打印模板
    import { getLodop } from '@/lodopPrint/LodopFuncs.js'

    // 预防后期个性化需求调整,一个模板最好单独一个方法
    // 现房备案申请审批表
    /**
     * @param {*} html 模板
     * @param {*} LODOP lodop实例对象
     */
     export const ExistingHouseFilingPrint = function(info, html) {
      Object.keys(info).forEach((k) => info[k] = info[k] || '')
      const LODOP = getLodop()
      LODOP.PRINT_INIT(info.title || '现房备案申请审批表')
      LODOP.SET_PRINT_STYLE('FontSize', 24)
      LODOP.SET_PRINT_STYLE('color', 'black')
      LODOP.SET_SHOW_MODE('PREVIEW_IN_BROWSE', 1)
      const newHtml = new Function('info', `return \`${html}\`;`)(info)
      LODOP.ADD_PRINT_HTM(0, 0, '100%', '100%', newHtml)
      LODOP.PREVIEW()
     }

     // 预售审批表
    /**
     * @param {*} info 数据对象
     * @param {*} html 模板
     * @param {*} LODOP lodop实例对象
     */
     export const PresaleApprovalFormPrint = function(info, html, html4, html4css) {
      Object.keys(info).forEach((k) => info[k] = info[k] || '')
      const LODOP = getLodop()
      LODOP.PRINT_INIT(info.title || '预售审批表')
      LODOP.SET_PRINT_STYLE('FontSize', 24)
      LODOP.SET_PRINT_STYLE('color', 'black')
      LODOP.SET_SHOW_MODE('PREVIEW_IN_BROWSE', 1)
      const newHtml = new Function('info', `return \`${html}\`;`)(info)
      LODOP.ADD_PRINT_HTM(0, 0, '100%', '100%', newHtml)
      /*
      LODOP.NewPageA()
      const newhtml4 = new Function('info', `return \`${html4}\`;`)(info)
      const temp = `<div class="wt-content"><div class="four">${newhtml4}</div></div>`
      LODOP.ADD_PRINT_HTM(0, 0, '100%', '100%', html4css + temp)
      */
      LODOP.PREVIEW()
     }

     // 新版备案表
    /**
     * @param {*} html 模板
     * @param {*} LODOP lodop实例对象
     */

     export const NewFormFilingFormPrint = function(info, html, BKIMG_IN_PREVIEW, BKIMG_PRINT) {
        Object.keys(info).forEach((k) => info[k] = info[k] || '')
        const LODOP = getLodop()
        LODOP.PRINT_INIT(info.title || '新版合同备案表')
        LODOP.SET_PRINT_STYLE('FontSize', 24)
        LODOP.SET_PRINT_STYLE('color', 'black')
        LODOP.SET_SHOW_MODE('PREVIEW_IN_BROWSE', 1)
        const newHtml = new Function('info', `return \`${html}\`;`)(info)
        LODOP.ADD_PRINT_HTM(0, 0, '100%', '100%', newHtml)

        // 条码打印必须放html渲染后面
        LODOP.ADD_PRINT_BARCODE(88, 400, 250, 54, '128A', info.barCode)
        LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10) // 文字设置样式
        LODOP.SET_PRINT_STYLEA(0, 'AlignJustify', 2)// 文字变小居中
        LODOP.SET_PRINT_STYLEA(0, 'Bold', 0)// 无效

        const backgroundUrl = info.backgroundUrl || 'http://192.168.101.72:8090/static/reportTemplate/新版合同备案表.png'
        LODOP.ADD_PRINT_SETUP_BKIMG("<img src='" + backgroundUrl + "' />")
        // 打印预览界面是否内嵌到网页内部。(内嵌:1或true)
        LODOP.SET_SHOW_MODE('PREVIEW_IN_BROWSE', 1)
        // 打印预览时,是否显示图片。(显示:true,隐藏:false)
        LODOP.SET_SHOW_MODE('BKIMG_IN_PREVIEW', BKIMG_IN_PREVIEW)
        // 打印时,是否打印图片。(打印图片:true,不打印图片:false)
        LODOP.SET_SHOW_MODE('BKIMG_PRINT', BKIMG_PRINT)

        LODOP.PREVIEW()
     }

     // 旧版备案表
    /**
     * @param {*} html 模板
     * @param {*} LODOP lodop实例对象
     */
     export const OldFormFilingFormPrint = function(info, html, BKIMG_IN_PREVIEW, BKIMG_PRINT) {
      Object.keys(info).forEach((k) => info[k] = info[k] || '')
      const LODOP = getLodop()
      LODOP.PRINT_INIT(info.title || '旧版合同备案表')
      LODOP.SET_PRINT_STYLE('FontSize', 24)
      LODOP.SET_PRINT_STYLE('color', 'black')
      LODOP.SET_SHOW_MODE('PREVIEW_IN_BROWSE', 1)
      const newHtml = new Function('info', `return \`${html}\`;`)(info)
      LODOP.ADD_PRINT_HTM(0, 0, '100%', '100%', newHtml)

      // 条码打印必须放html渲染后面
      LODOP.ADD_PRINT_BARCODE(88, 400, 250, 54, '128A', info.barCode)
      LODOP.SET_PRINT_STYLEA(0, 'FontSize', 10) // 文字设置样式
      LODOP.SET_PRINT_STYLEA(0, 'AlignJustify', 2)// 文字变小居中
      LODOP.SET_PRINT_STYLEA(0, 'Bold', 0)// 无效

      const backgroundUrl = info.backgroundUrl || 'http://192.168.101.72:8090/static/reportTemplate/新版合同备案表.png'
      LODOP.ADD_PRINT_SETUP_BKIMG("<img src='" + backgroundUrl + "' />")
      // 打印预览界面是否内嵌到网页内部。(内嵌:1或true)
      LODOP.SET_SHOW_MODE('PREVIEW_IN_BROWSE', 1)
      // 打印预览时,是否显示图片。(显示:true,隐藏:false)
      LODOP.SET_SHOW_MODE('BKIMG_IN_PREVIEW', BKIMG_IN_PREVIEW)
      // 打印时,是否打印图片。(打印图片:true,不打印图片:false)
      LODOP.SET_SHOW_MODE('BKIMG_PRINT', BKIMG_PRINT)

      LODOP.PREVIEW()
    }

    /**
     许可证套打
     * @param {*} info  数据源
     * @param {*} html  模板
     * @param {*} isPriview  是否预览 true 预览,false 设计
     * @param {*} tplNumb  模板名(未来其他许可证模板特殊处理)
     * @param {*} direction  zhengda /ceda
     * @param {*} BKIMG_IN_PREVIEW  背景图是否预览
     * @param {*} BKIMG_PRINT  背景图是否打印
     */
     export const PermitPrint = function(info, html, isPriview, tplNumb, direction, BKIMG_IN_PREVIEW, BKIMG_PRINT, callBack) {
       const LODOP = getLodop()
       // Object.keys(info).forEach((k) => info[k] = info[k] || '')
       // 初始化模板
       LODOP.PRINT_INITA('1.85mm', '0.79mm', '338.67mm', '239.18mm', '套打所有权的模板')
       // LODOP.SET_PRINT_MODE("POS_BASEON_PAPER",true);
       // LODOP.SET_PRINT_STYLEA(0,"Stretch",2);//按原图比例(不变形)缩放模式
       LODOP.SET_PRINT_MODE('PRINT_PAGE_PERCENT', 'Width:100%;Height:100%')
       // 判断是正打还是侧打
       if (direction == 'zhengda') { // 正打
         if (tplNumb == 'tpl001') { // 房屋预售许可证
           LODOP.SET_PRINT_PAGESIZE(1, 3300, 2300, '')// 单位0.1mm
           // LODOP.SET_PRINT_PAGESIZE(2, '209mm', '113mm', '')// 设置纸张高度 A4210mm×297mm
         } else if (tplNumb == 'tpl002') { // 房屋预告登记证明
           LODOP.SET_PRINT_PAGESIZE(1, 2500, 1800, '')// 单位0.1mm
         } else if (tplNumb == 'tpl007') { // 房屋所有权证
           LODOP.SET_PRINT_PAGESIZE(1, 3320, 2390, '')// 单位0.1mm
         } else if (tplNumb == 'tpl009' || tplNumb == 'tpl012') { // 房屋一般抵押权 或者 房屋在建工程抵押权
           LODOP.SET_PRINT_PAGESIZE(1, 2500, 1800, '')// 单位0.1mm
         }
       } else { // 侧打
         if (tplNumb == 'tpl001') { // 房屋预售许可证
           LODOP.SET_PRINT_PAGESIZE(2, 2300, 3300, '')// 单位0.1mm
         } else if (tplNumb == 'tpl002') { // 房屋预告登记证明
           LODOP.SET_PRINT_PAGESIZE(2, 1800, 2500, '')// 单位0.1mm
         } else if (tplNumb == 'tpl007') { // 房屋所有权证
           LODOP.SET_PRINT_PAGESIZE(2, 2390, 3320, '')// 单位0.1mm
           // LODOP.SET_PRINT_STYLEA(0,"AngleOfPageInside",90);
         } else if (tplNumb == 'tpl009' || tplNumb == 'tpl012') { // 房屋一般抵押权 或者 房屋在建工程抵押权
           LODOP.SET_PRINT_PAGESIZE(2, 1800, 2500, '')// 单位0.1mm
         }
       }

       // 打印预览界面是否内嵌到网页内部。(内嵌:1或true)
       LODOP.SET_SHOW_MODE('PREVIEW_IN_BROWSE', 1)

       // 打印预览时,是否显示图片。(显示:true,隐藏:false)
       LODOP.SET_SHOW_MODE('BKIMG_IN_PREVIEW', BKIMG_IN_PREVIEW || true)
       // 打印时,是否打印图片。(打印图片:true,不打印图片:false)
       LODOP.SET_SHOW_MODE('BKIMG_PRINT', BKIMG_PRINT || true)

       const backgroundUrl = info.backgroundUrl || 'http://192.168.101.72:8090/static/reportTemplate/tpl001.jpg'
       LODOP.ADD_PRINT_SETUP_BKIMG("<img src='" + backgroundUrl + "' />")

       // 标记背景图左边距和上边距区域//
       LODOP.SET_SHOW_MODE('BKIMG_LEFT', 0)
       LODOP.SET_SHOW_MODE('BKIMG_TOP', 0)
       // 标记背景图左边距和上边距区域//

       /**
         *以下内容为上传文件数据替换的区域
         *1)//标记动态数据区域//   这部分模板设计者,不能改变,由管理员决定。
         *2)//标记背景图左边距和上边距区域//  这部分模板设计者,可以改变,由设计完成的模板生成代码中的对应代码进行替换。
         *3)//标记设计数据区域//  这部分模板设计者,可以改变,由设计完成的模板生成代码中的对应代码进行替换,字段值改为对应的1)中对应的标记动态数据。
         *友情提示:如果还有疑惑的,请联系系统管理员。
       */

       // 标记动态数据区域//
       const replaceHtml = function(html, obj) {
         Object.keys(obj).forEach((key) => {
          html = html.replace(key.toString(), obj[key])
         })
         return html
       }

       // 预览
       if (isPriview) {
          const lastHtml = replaceHtml(html, info)
          eval(lastHtml)// 替换完的html值,动态绑定
          // 已流的形式输出背景图片
          const backgroundUrl = info.backgroundUrl || 'http://192.168.101.72:8090/static/reportTemplate/tpl001.jpg'
          LODOP.ADD_PRINT_SETUP_BKIMG("<img src='" + backgroundUrl + "' />")

          LODOP.PREVIEW()
       } else {
          eval(html)
          // 已流的形式输出背景图片
          const backgroundUrl = info.backgroundUrl || 'http://192.168.101.72:8090/static/reportTemplate/tpl001.jpg'
          LODOP.ADD_PRINT_SETUP_BKIMG("<img src='" + backgroundUrl + "' />")
          LODOP.SET_SHOW_MODE('HIDE_PBUTTIN_SETUP', true)// 隐藏打印设计界面的‘打印’按钮
          LODOP.PRINT_DESIGN()

          // LODOP.PRINT_SETUP()
          // 保存记录
          if (LODOP.CVERSION) {
            LODOP.On_Return = function (TaskID, Value) {
            // ajax存库,或重新读写模板
             callBack && callBack(Value)
             console.log(Value)
            }
          }
        }
    }

    声明: 本文采用 BY-NC-SA 协议进行授权 | WEB开发分享
    转载请注明转自《lodop组件套打》



沪ICP备19023445号-2号
友情链接