Web打印控件RTPrinter的用法

本文介绍了如何在Web开发中使用RTPrinterweb打印控件,包括下载安装、模板结构、配置参数和各种方法,如打印、获取打印机列表等,以满足静默无预览打印的需求。

在日常开发中,经常会遇到web打印的需求,很多时候,需要静默打印,然而浏览器一般不支持无预览打印,这时就需要借助一些打印控件来实现这个需求了。本文将介绍RTPrinter web打印控件的用法。

一、下载安装

使用RTPrinter前,需要在页面中引入一个js文件,可从下面的链接引入,

http://cdn.dadang.cn/rtp.js ,也可以将js下载到本地引入。

引入js后,通过调用getRTP()方法可以获取到一个打印实例,调用实例的check()方法可以检测是否下载安装了控件,如果没有安装,会自动下载安装包gzprinter.zip,解压后,运行setup.exe安装即可。

getRTP().check();

二、打印模板结构

RTPrinter支持直接打印html模板,模板结构如下:

<div class="rtp-template">
    <div class="rtp-header">这里是头部要打印的内容</div>
    <div class="rtp-item">
        <table>
            <thead>
            </thead>
            <tbody>
            </tbody>
        </table>
    </div>
    <div class="rtp-footer">
        这里是尾部要打印的内容
    </div>
</div>

头部和尾部一般用于放置表头和表尾内容,可以是任意结构的html。

rtp-item中放置要打印的表格,当表格内容超长时,会自动分页打印,分页时可选是否每页中都包含列名行。

模板中的三部分都是可选的,可以根据需要取舍。如果要打印的内容可能超过一页时,建议将这部分放置到rtp-item中,并以表格的形式呈现,因为这样能自动分页打印。

三、配置参数

var defaults = {
        rtp_header: ".rtp-header",  //模板头选择器
        rtp_footer: ".rtp-footer",  //模板尾选择器
        rtp_item: '.rtp-item',      //模板表格选择器
        font: {
            name:'Verdana, Geneva, sans-serif',  //打印使用的字体
            size: '12pt'  //打印字体大小
        },
        printer: {
            name: '',    //可指定打印机名称,不指定则使用默认值
            paperName:'',  //可指定纸张名称,不指定则使用默认值
            pageWidth: 210,   //纸张宽度,单位mm
            pageHeight: 297,  //纸张高度,单位mm
            dpi:96,  //打印机分辨率
            landscape: false,  //是否横向,true:横向 false:纵向
            copies:1  //打印份数
        },
        margins: {
            top: 40,  //打印上边距,单位px
            bottom: 40,  //打印下边距,单位px
            left: 40,  //打印左边距,单位px
            right:40  //打印右边距,单位px
        },
        usePager:true,  //是否在页尾显示页码
        pagerNumStyle: "第#p页/共#P页",  //页码显示样式
        preview: false,   //是否预览打印,true:预览 false:不预览直接打印
        appendTheadPerPage: true,  //自动分页时是否每页都带上列名
        downloadUrl:'http://shop.wanyouyinli.com/download/rtprinter.zip', //控件下载地址
        token:''  //授权码,无授权码可免费试用30天
    };

这些参数可以在getRTP(options)时指定,也可以通过getRTP().settings.xx修改。

四、支持的方法

4.1 获取打印实例

getRTP(options)

options:参考配置参数进行传递

4.2 打印

print(template,callback)

template:要打印的模板css选择器,例如:#template。该模板中的内容会被发送到打印机打印。

callback:打印回调函数。

4.3 获取打印机列表

getPrinterList(callback)

callback:获取到打印机列表后的回调函数,参数包含了打印机列表。

4.4获取纸张

getPapers(printerName, callback)

printerName:打印机名称

callback:回调函数,参数包含了指定打印机支持的纸张列表

4.5获取打印机分辨率

getPrinterDpi(printerName, callback)

printerName:打印机名称

callback:回调函数,参数包含了指定打印机的分辨率

4.6检测打印控件是否安装

check()

五、总结

根据配置参数和方法,可以很容易打印页面中指定的html模板,支持指定打印机、指定纸张、指定打印方向、指定打印份数、自动分页。

控件功能强大,却简单易用,所有调用如同JavaScript扩展语句, 主要接口函数如下: PRINT_INIT 打印初始化 SET_PRINT_PAGESIZE 设定纸张大小 ADD_PRINT_HTM 增加超文本项 ADD_PRINT_TEXT 增加纯文本项 ADD_PRINT_TABLE 增加表格项 ADD_PRINT_SHAPE 画图形 SET_PRINT_STYLE 设置对象风格 PREVIEW 打印预览 PRINT 直接打印 PRINT_SETUP 打印维护 PRINT_DESIGN 打印设计 ... 样例清单 1.如何在页面内嵌入控件见样例一 2.如何选材打印当前页面内容见样例二 3.如何用代码生成打印页见样例三 4.如何打印设计和定位套打见样例四 5.如何控制纸张大小和连续打印见样例五 6.如何输出多页长文档及双面打印见样例六 7.如何定向输出见样例七 8.如何打印图片见样例八 9.如何用程序加载打印维护背景图见样例九 10.如何控制打印样式(STYLE)见样例十 11.如何直接打印条形码见样例十一 12.如何读写本地文件见样例十二 13.如何打印旋转内容见样例十三 14.如何按URL打印见样例十四 15.如何打印表格的页头页尾见样例十五 16.如何设置预览窗口大小见样例十六 17.如何发打印机指令或直接读写端口见样例十七 18.如何打印幅面高度不固定的票据见样例十八 19.如何内嵌显示及预览时包含背景图见样例十九 20.如何强制分页并预览多页卡片见样例二十 21.如何控制打印维护的功能权限见样例二十一 22.如何构建自己的纯WEB打印预览见样例二十二 23.如何居中打印超文本见样例二十三 24.如何选择界面皮肤见样例二十四 25.如何指定输出到哪页或仅预览见样例二十五 26.如何提高多页打印的性能见样例二十六 27.如何导出数据到Excel文件见样例二十七 28.如何快速读取客户端系统信息见样例二十八 29.如何使用其它长度单位见样例二十九 30.如何分页输出页面内容见样例三十 31.如何打印表格的分页小计或合计见样例三十一 32.如何实现清晰的图表打印见样例三十二 33.如何实现甘特图等的图表打印见样例三十三 34.如何使用百分比%和满页打印见样例三十四 35.如何获得打印结果和程序代码见样例三十五 36.如何在设计过程中用js编辑内容见样例三十六 37.如何打印公章效果图见样例三十七 38.如何用BASE64编码输出图片见样例三十八 39.如何打印田字格、上划线等文本见样例三十九 40.如何进行数据格式转换见样例四十 41.如何把内容关联后按顺序打印见样例四十一 42.如何把整页内容缩放打印见样例四十二 43.如何分页打印综合表格见样例四十三 44.如何缩放打印单个超文本内容见样例四十四 45.如何获得打印状态及最终结果见样例四十五 46.如何设置右边距和下边距见样例四十六
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值