lodop组件套打

时间:22-09-30 栏目:Javascript 作者:zongyan86 评论:0 点击: 632 次

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)
        }
      }
    }
}


声明: 本文由( zongyan86 )原创编译,转载请保留链接: lodop组件套打

关注我们