一、首先获取LODOP打印对象
var LODOP=getLodop();
getLodop()方法,看文件http://www.c-lodop.com/demolist/LodopFuncs.js
打印控件下载或升级安装包,请看样例一http://www.c-lodop.com/demolist/PrintSample1.html
二、LODOP的属性和方法
基本
Lodop中最基本的打印过程至少有初始化语句、添内容语句和打印语句三部分组成
LODOP.PRINT_INIT("打印任务名"); //首先一个初始化语句
LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本内容一");//然后多个ADD语句及SET语句
LODOP.PRINT(); //最后一个打印(或预览、维护、设计)语句
添加内容的方法
一次打印任务可以添加多个内容(初始化之后调用)
-
LODOP.ADD_PRINT_TEXT(Top,Left,Width,Height,strContent);增加纯文本打印项
-
LODOP.ADD_PRINT_HTM(Top,Left,Width,Height,strHtmlContent);增加超文本打印项
-
LODOP.ADD_PRINT_TABLE(Top,Left,Width,Height,strHtml);增加表格打印项
-
LODOP.ADD_PRINT_URL(Top,Left,Width,Height,strURL);增加超文本打印项
-
LODOP.ADD_PRINT_IMAGE(Top,Left,Width,Height,strHtmlContent);增加图片超文本打印项
-
LODOP.ADD_PRINT_RECT(Top, Left, Width, Height,intLineStyle, intLineWidth);增加矩形线(在打印初始化后,在文本类函数之前调用)
-
LODOP.ADD_PRINT_ELLIPSE(Top, Left,Width, Height, intLineStyle, intLineWidth);增加椭圆线(在打印初始化后,在文本类函数之前调用)
-
LODOP.ADD_PRINT_LINE(Top1,Left1, Top2, Left2,intLineStyle, intLineWidth);增加直线(在打印初始化后,在文本类函数之前调用)
-
LODOP.ADD_PRINT_BARCODE(Top, Left,Width, Height, CodeType, CodeValue);增加条形码(在打印初始化后,打印或预览之前调用)
-
LODOP.ADD_PRINT_CHART(Top, Left,Width, Height, ChartType, strHtml);增加图表(在打印初始化后,打印或预览之前调用)
-
LODOP.ADD_PRINT_SETUP_BKIMG(strImgHtml) 指定背景图
打印执行方法
- LODOP.NEWPAGE() 强制分页(打印初始化后调用本函数)
- LODOP.PREVIEW() 打印预览
- LODOP.PRINT() 打印
- LODOP.PRINT_SETUP() 打印维护
- LODOP.PRINT_DESIGN () 打印设计
- LODOP.GET_PRINTER_COUNT() 获得操作系统内打印设备的个数
- LODOP.GET_PRINTER_NAME(intPrinterNO) 获得打印设备名称
- LODOP.SET_PRINTER_INDEX(oIndexOrName) 指定打印设备
- LODOP.SELECT_PRINTER 选择打印设备 XX
- LODOP.SET_SHOW_MODE (strModeType,varModeValue) 设置显示模式
- LODOP.SET_PRINT_MODE(strModeType,varModeValue)
常见的错误用法:
1.newpage分页后,每分页一次就init设置一下,这是错误的,分页是在一个任务里进行的,只能有一个init或inita。
2.一个任务(init或inita)里有多个纸张设置语句,这是错误的,一个任务只能有一个纸张设置。
3.一个任务里设置多张ADD_PRINT_SETUP_BKIMG背景图,一个任务只能有一个,如果想不同页输出不同背景图,可用普通图片方式输出背景图。
4.一个任务里打印预览,和导出图片,需要分成两个任务,一个任务打印预览,一个导出。(同理,发送打印机指令,和打印预览等也不能同一个任务)
在LODOP的方法中设计到的参数单位:
整数或字符型,整数时缺少长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米
在LODOP的方法中设计到的参数
-
top: 打印项在纸张内的上边距。当上边距超过纸张高度时,打印项被输出在下一页(或更下页)。
-
Left:打印项在纸张内的左边距。
-
Width: 打印区域的宽度
-
Height:打印区域的高度
-
intOrient, 打印方向及纸张类型,数字型
- 1—纵(正)向打印,固定纸张;
- 2—横向打印,固定纸张;
- 3—纵(正)向打印,宽度固定,高度按打印内容的高度自适应;
- 0(或其它)----打印方向由操作者自行选择或按打印机缺省设置;
-
PageWidth, 设定自定义纸张宽度
-
PageHeight, 设定自定义纸张高度
- 第1优先是打印维护里纸张属性(“本机自行定义纸张”)设置的纸张大小。
- 第2优先是SET_PRINT_PAGESIZE指定的纸张大小;
- 第3优先是上次打印时在预览界面设置里选择的纸张类型;
- 第4是按所选打印机的默认纸张;
-
strPageName 所选纸张类型名
-
strContent: 纯文本内容,字符型,未限制长度
-
strHtmlContent:本参数是字符型,有三种情况:一是用IMG标签组成的超文本代码内容(标签内容);二是本地文件名内容全路径,格式如“C:/test.jpg”;第三是WEB地址。
-
strImgHtml 本参数是字符型,有两种情况:一是超文本代码内容;二是本地文件名内容
-
strURL: 页面URL地址
-
strHtml : 超文本代码内容
-
intLineStyle 线条类型,数字型,0–实线 1–破折线 2–点线 3–点划线 4–双点划线
-
intLineWidth 线条宽,整数型,单位是(打印)像素。
-
CodeType:
条码类型,字符型。目前支持的类型(条码规制)主要是一维条码,有如下几种:
128A,128B,128C,EAN8,EAN13,EAN128A,EAN128B,EAN128C,Code39,
39Extended,2_5interleaved,2_5industrial,2_5matrix,UPC_A,UPC_E0,UPC_E1,UPCsupp2,UPCsupp5,Code93,93Extended,MSI,PostNet,Codaba,QRCode。
其中QRCode二维码,其它为一维码。默认情况下QRCode的版本会根据宽度和高度自动调整,页面程序也可以直接设置具体版本(有1、3、7、14四个简约版本可选),版本固定时会按宽度和高度自动缩放条码大小。 -
CodeValue: 条码值。
-
ChartType:
图表类型代码,整数型,目前支持的图表类型有如下几种:
0–折线图;1–柱状图;2–条形图;3–面积图;4–散点图;5–饼图;
6–直线图;7–甘特图;8–箭头图;9–气泡图;10—几何图;
首先
- 获取打印 版本 –
LODOP.CVERSION
- LODOP.PRINT_INIT(“打印任务名”); //首先一个初始化语句,一次任务只能有一个打印任务名
- LODOP.SET_PRINTER_INDEX(打印机序号);//选择打印机,可用序号或打印机名等方式指定打印机
- LODOP.SET_PRINT_PAGESIZE(intOrient, PageWidth,PageHeight,strPageName);//设置纸张大小(初始化之后调用)
- LODOP.ADD_PRINT_SETUP_BKIMG(“背景图地址”);//设置Lodop背景图(初始化之后调用)
设置打印样式相关(一次打印任务只能设置一次,打印初始化后、增加打印项之前调用本函数。)
- LODOP.SET_PRINT_STYLE(strStyleName,varStyleValue)
- LODOP.SET_PRINT_STYLE(strStyleName,varStyleValue)
strStyleName:打印风格名,风格名称及其含义如下:
“FontName”:设定纯文本打印项的字体名称。
“FontSize”:设定纯文本打印项的字体大小。
“FontColor”:设定纯文本打印项的字体颜色。
“Bold”:设定纯文本打印项是否粗体。
“Italic”:设定纯文本打印项是否斜体。
“Underline”:设定纯文本打印项是否下滑线。
“Alignment”:设定纯文本打印项的内容左右靠齐方式。
“Angle”:设定纯文本打印项的旋转角度。
“ItemType”:设定打印项的基本属性。
“HOrient”:设定打印项在纸张内的水平位置锁定方式。
“VOrient”:设定打印项在纸张内的垂直位置锁定方式。
“PenWidth”:线条宽度。
“PenStyle”:线条风格。
“Stretch”:图片截取缩放模式。
“PreviewOnly”:内容仅仅用来预览。
“ReadOnly”:纯文本内容在打印维护时,是否禁止修改。
-
varStyleValue:打印风格值,相关值如下:
FontName的值:字符型,与操作系统字体名一致,缺省是“宋体”。
FontSize的值:数值型,单位是pt,缺省值是9,可以含小数,如13.5。
FontColor的值:整数或字符型,整数时是颜色的十进制RGB值;字符时是超文本颜色值,可以是“#”加三色16进制值组合,也可以是英文颜色名;
Bold的值:数字型,1代表粗体,0代表非粗体,缺省值是0。
Italic的值:数字型,1代表斜体,0代表非斜体,缺省值是0。
Underline的值:数字型,1代表有下划线,0代表无下划线,缺省值是0。
Alignment的值:数字型,1–左靠齐 2–居中 3–右靠齐,缺省值是1。
Angle的值:数字型,逆时针旋转角度数,单位是度,0度表示不旋转。
ItemType的值:数字型,0–普通项 1–页眉页脚 2–页号项 3–页数项 4–多页项
缺省(不调用本函数时)值0。普通项只打印一次;页眉页脚项则每页都在固定位置重复打印;页号项和页数项是特殊的页眉页脚项,其内容包含当前页号和全部页数;多页项每页都打印,直到把内容打印完毕,打印时在每页上的位置和区域大小固定一样(多页项只对纯文本有效)
在页号或页数对象的文本中,有两个特殊控制字符:
“#”特指“页号”,“&”特指“页数”。
HOrient的值:数字型,0–左边距锁定 1–右边距锁定 2–水平方向居中 3–左边距和右边距同时锁定(中间拉伸),缺省值是0。
VOrient的值:数字型,0–上边距锁定 1–下边距锁定 2–垂直方向居中 3–上边距和下边距同时锁定(中间拉伸),缺省值是0。
PenWidth的值:整数型,单位是(打印)像素,缺省值是1,非实线的线条宽也是0。
PenStyle的值:数字型,0–实线 1–破折线 2–点线 3–点划线 4–双点划线
缺省值是0。
Stretch的值:数字型,0–截取图片 1–扩展(可变形)缩放 2–按原图长和宽比例(不变形)缩放。缺省值是0。
PreviewOnly的值:字符或数字型,1或“true”代表仅预览,否则为正常内容。
ReadOnly的值:字符或数字型,1或“true”代表“是”,其它表示“否”,缺省值为“是”,即缺省情况下,纯文本内容在打印维护时是禁止修改的。 -
intPrinterNO: 打印设备序号,数字型,序号从0开始,最大序号是GET_PRINTER_COUNT()减1。
-
oIndexOrName 打印机名称或序号
-
strModeType显示模式的名称,字符型,如下是类型名及其含义:
“PREVIEW_IN_BROWSE”:打印预览界面是否内嵌到网页内部。
“SETUP_IN_BROWSE”: 打印维护界面是否内嵌到网页内部。
“DESIGN_IN_BROWSE”:打印设计界面是否内嵌到网页内部。
“BKIMG_IN_PREVIEW”:打印预览时是否包含背景图。
“BKIMG_IN_FIRSTPAGE”:打印预览时是否仅首页包含背景图。
“SETUP_ENABLESS”:打印维护界面工具显示控制(权限控制字串)
“SKIN_TYPE”:界面皮肤类型
“SKIN_CUSTOM_COLOR”:界面自定义皮肤颜色
“HIDE_PBUTTIN_PREVIEW”:隐藏预览窗口的打印按钮
“HIDE_SBUTTIN_PREVIEW”:隐藏预览窗口的打印设置按钮
“HIDE_QBUTTIN_PREVIEW”:隐藏预览窗口的关闭按钮
“HIDE_PBUTTIN_SETUP”:隐藏打印维护窗口的打印按钮
“HIDE_VBUTTIN_SETUP”:隐藏打印维护窗口的预览按钮
“HIDE_ABUTTIN_SETUP”:隐藏打印维护窗口的应用按钮
“HIDE_RBUTTIN_SETUP”:隐藏打印维护窗口的复原按钮
“MESSAGE_GETING_URL”:URL对象下载时的提示信息
“MESSAGE_PARSING_URL”:URL对象解析时的提示信息
“MESSAGE_PARSING_HTM”:HTM对象解析时的提示信息
“MESSAGE_NOSET_PROPERTY”:打印维护界面企图进入属性设置的警示信息
“HIDE_PAPER_BOARD”:隐藏打印预览背景进纸版的图案
“LANDSCAPE_DEFROTATED”:横向打印的预览默认旋转90度(正向显示)
“BKIMG_LEFT”:设置背景图位置X值
“BKIMG_TOP”:设置背景图位置Y值
“BKIMG_WIDTH”:设置背景图宽度
“BKIMG_HEIGHT”:设置背景图高度
“HIDE_PAGE_PERCENT”:隐藏整页缩放(百分比)的下拉选择框
“LANGUAGE”:设置界面文字的语言 -
varModeValue显示模式的值,整数或字符型,相关值如下:
PREVIEW_IN_BROWSE的值:整数或字符型,1或“1”或“True”=是,否则不是。
SETUP_IN_BROWSE的值:整数或字符型,1或“1”或“True”=是,否则不是。
DESIGN_IN_BROWSE的值:整数或字符型,1或“1”或“True”=是,否则不是。
BKIMG_IN_PREVIEW的值:整数或字符型,1或“1”或“True”=是,否则不是。
BKIMG_IN_FIRSTPAGE的值:整数或字符型,1或“1”或“True”=是,否则不是。
SETUP_ENABLESS的值:字符型,由“1”和“0”组成的字符串,最多14个字符,
按如下顺序控制打印维护的界面功能,“1”-允许,“0”-禁止:
位置移动和宽高调整1+颜色选择2+字体名选择3+字大小选择4+旋角调整5+粗斜体功能条6+线型功能条7+对齐功能条8+删除功能9+页眉设置10+页脚设置11+位置锁定功能12+属性设置13+显示关闭钮(界面内嵌时)14
缺省的SETUP_ENABLES值:“11111111000001”
例如:如想允许操作者“删除”对象,可以执行如下语句;
LODOP.SET_SHOW_MODE(“SETUP_ENABLES”,“11111111100001”);
SKIN_TYPE的值:数字型,固定皮肤如下:
0–银灰色(缺省);1–经典绿; 2–熏衣草紫;3–淡钢青;4–茶色棕;5–茶色棕;
6–麦色;7–紫罗兰;8–天蓝;9–镀银;10–沙滩棕;11–鲜肉色;12–粉末蓝;13–钒矿色;
14–浅绿;15–浅蓝;16–卡其布; 17–秋麒麟;18–深海绿;19–深卡其布;20–番茄桔
SKIN_CUSTOM_COLOR的值:整数或字符型,整数时是颜色的十进制RGB值;字符时是超文本颜色值,可以是“#”加三色16进制值组合,也可以是英文颜色名。
HIDE_PBUTTIN_PREVIEW的值:整数或字符型,1或“1”或“True”=是,否则不是。
HIDE_SBUTTIN_PREVIEW的值:整数或字符型,1或“1”或“True”=是,否则不是。
HIDE_QBUTTIN_PREVIEW的值:整数或字符型,1或“1”或“True”=是,否则不是。
HIDE_PBUTTIN_SETUP的值:整数或字符型,1或“1”或“True”=是,否则不是。
HIDE_VBUTTIN_SETUP的值:整数或字符型,1或“1”或“True”=是,否则不是。
HIDE_ABUTTIN_SETUP的值:整数或字符型,1或“1”或“True”=是,否则不是。
HIDE_RBUTTIN_SETUP的值:整数或字符型,1或“1”或“True”=是,否则不是。
MESSAGE_GETING_URL的值:字符型,默认值是“正打开页面下载数据(限时5分钟)…”。
MESSAGE_PARSING_URL的值:字符型,默认值是“下载结束,正在准备打印数据…”。
MESSAGE_PARSING_HTM的值:字符型,默认值是空(不提示信息),当超文本内容较多,有明显等待时间时,建议设置该值。
MESSAGE_NOSET_PROPERTY的值:字符型,默认值是“只有在设计模式下才能设置属性…”。
HIDE_PAPER_BOARD的值:整数或字符型,1或“1”或“True”=是,否则不是。
LANDSCAPE_DEFROTATED的值:整数或字符型,1或“1”或“True”=是,否则不是。
BKIMG_LEFT的值:整数或字符型。整数的单位是PX,字符时可以包含具体计量单位。
BKIMG_TOP的值:同上;
BKIMG_WIDTH的值:同上;
BKIMG_HEIGHT的值:同上;
HIDE_PAGE_PERCENT的值:整数或字符型,1或“1”或“True”=是,否则不是。
LANGUAGE的值:数字,0-简体中文 1-英文 2-繁体 3-BIG5(繁体)