# LODOP打印插件使用总结

# 使用注意事项

  1. lodop插件安装成功之后,还需要启用服务里面的print spooler服务。
  2. lodop实现套打时,必须先确定实现套打的背景图片和打印纸张的大小,固定内容的位置保持一致,避免后期打印时抓狂的打印位置调试。
  3. Lodop背景图片在保证不失真的情况下,尽量小一些,因为lodop分页的时候背景图片也会在下一页形成一个新的元素。

# 使用方式

引用lodop.js

方式一: 在lodop.js末尾加上export default getLodop抛出getLodop()方法,然后,在需要用到的地方导入一下就行了import getLodop from '@/libs/LodopFuncs'

方式二: 在静态资源文件夹中放入lodop.js,然后全局引入一下。

# 打印流程

  1. 一个简单的打印页面 打印维护、打印设计、打印预览三者不能同时存在
// 初始化语句
LODOP.PRINT_INIT("打印任务名称")

// 设计打印区域 第一个参数上边距,第二个参数左边距,第三个参数设计区域的宽,第四个参数设计区域的高
LODOP.PRINT_INITA(0,0,'210mm','297mm')

// 打印全局字体大小
LODOP.SET_PRINT_STYLE('FontSize', 8)

// 打印全局字体
LODOP.SET_PRINT_STYLE('FontName', 'Curier New')

// 设置背景图片 第一个参数上边距,第二个参数左边距,第三个参数背景图的宽,第四个参数背景图的高 第五个参数背景图的地址
LODOP.ADD_PRINT_IMAGE(0, 0, '210mm', '297mm', `<img border='0' src=${this.showImgOne} />`)
//按原图比例(不变形)缩放模式
LODOP.SET_PRINT_STYLEA(0, 'Stretch', 2)

// 打印文本内容 第一个参数上边距,第二个参数左边距,第三个参数文本域的宽,第四个参数文本域的高,第五个参数文本内容
LODOP.ADD_PRINT_TEXT(141,185,141,20, '文本内容')

// 打印维护
LODOP.PRINT_SETUP()

// 打印设计
LODOP.PRINT_DESIGN()

// 打印预览
LODOP.PREVIEW()
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

# 常用的功能

  1. 设置背景图
// 方法一
// 这种方法设置出来的背景图是打印的元素,可以在打印设计中编辑
LODOP.ADD_PRINT_IMAGE(0, 0, '210mm', '297mm', `<img border='0' src=${this.showImgOne} />`)
// 设置背景图可以预览但是不能打印
LODOP.SET_PRINT_STYLEA(0,"PreviewOnly",1);
//按原图比例(不变形)缩放模式
LODOP.SET_PRINT_STYLEA(0, 'Stretch', 2)

// 方法二
// 设置背景图
LODOP.ADD_PRINT_SETUP_BKIMG(`<img border='0' src=${this.showImgOne} />`)
// 设置背景图的宽高,修改一个值另一个也会随之改变,所以一般写一个就行了
// 设置背景图的宽
LODOP.SET_SHOW_MODE("BKIMG_WIDTH", '210mm')
// 设置背景图的高
LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", '297mm')
// 设置背景图可以预览但是不能打印
LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",1);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  1. 设置页码
// 方法一
// 打印页码 第一个参数上边距,第二个参数左边距,第三个参数文本域的宽,第四个参数文本域的高,第五个参数页码内容,#是第几页,&是总共的页码
LODOP.ADD_PRINT_TEXT(141,185,141,20, '第#页,总共&页')
LODOP.SET_PRINT_STYLEA(0,"ItemType",3);


// 方法二

1
2
3
4
5
6
7
8
  1. 强制分页
  • 强制分页,此行开始分页,但代码还是会继续往下走,如何时动态分页一般配合return一起使用。
// 翻页打印如果前页没有pdf,则使用LODOP.NewPage()
LODOP.NewPage()

// 翻页打印如果前页有pdf则需要使用LODOP.NEWPAGEA()
LODOP.NEWPAGEA()
1
2
3
4
5
  1. 控制打印的状态
  • 点击打印按钮,会累积当前页面下点击打印按钮的次数。
// 设置是否进行对后台服务的打印状态进行捕获。
LODOP.SET_PRINT_MODE('CATCH_PRINT_STATUS', true)
LODOP.On_Return = function(TaskID,Value){
    LODOP.GET_VALUE('PRINT_STATUs_OK' , Value)
    if (Value) {
        console.log('Value') // 打印的次数
    }
}
1
2
3
4
5
6
7
8

# 分页套打需要考虑的点

  1. 打印的纸张、字体、字号、行距;
  2. 整词换行还是截断换行;
  3. 当前数据,还未展示完时就需要分页时,需要考虑当前数据的结束位置,如何在下一页进行衔接展示;
  4. 需要考虑在下一页展示的开始位置和结束位置。

# 常见问题

# 电脑打不开预览界面

有的电脑打不开预览界面,有的电脑打开预览界面内没有内容。

  • 解决方法:
  • 打开电脑服务—— print Spooler启动该服务就行了。

# 不同电脑预览不一样

不同的电脑预览同份代码生成的预览页面,看到的效果不太一样。

  • 解决方法:
  1. 浏览器的缩放100%。

  2. 电脑的设置的缩放比100%。

  3. 缓存文件问题,删除缓存配置文件,路径一般是lodop主文件夹下:C:\Program Files (x86)\MountTaiSoftware\Lodop。

# 无法获取打印的状态

有的电脑无法获取打印状态/打印次数

  • 解决方法:
  1. 缓存文件问题,删除缓存配置文件,路径一般是lodop主文件夹下:C:\Program Files (x86)\MountTaiSoftware\Lodop。

  2. 重新安装lodop插件,将安装时的选项全部勾上。

# 预览时没有背景图片

当预览的次数过多,当前的文件内容过大时,会出现预览界面没有背景图片。(文件过大,一般40M-50M应该不是问题,临界值没有测试过)

  • 临时解决方法:
  • 次数过多时没有预览没有背景图片,可以重启Lodop插件。