资江小票打印机js实现web打印(web通用打印)

网上有很多关于web打印的js代码和解决办法,这里推荐一个认为介绍的比较全的

1.使用jQuery插件进行打印 jquery.print
引入文件

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.print.js"></script>

调用方法

$("#myElementId").print(/*options*/);
或者:
$.print("#myElementId" /*, options*/);

参数配置

$("#myElementId").print({
    globalStyles: true,
    mediaPrint: false,
    stylesheet: null,
    noPrintSelector: ".no-print",
    iframe: true,
    append: null,
    prepend: null,
    manuallyCopyFormValues: true,
    deferred: $.Deferred()
});

参数

默认值

接受值

描述

globalStyles

true

Boolean

是否包含父文档的样式

mediaPrint

false

Boolean

是否包含media=’print’的链接标签。会被globalStyles选项覆盖

stylesheet

null

URL-string

外部样式表的URL地址

noPrintSelector

“.no-print”

任何可用的jQuery选择器

不想打印的元素的jQuery选择器

iframe

默认true,如果没有iframe选择器被传入会创建一个隐藏的iframe

任何可用的jQuery选择器或Boolean

是否使用一个iframe来替代打印表单的弹出窗口

append/prepend

null

Boolean

是否将用户更新的表单输入框内容作为打印内容(通过迭代每一个表单元素来实现)

deferred

$.Deferred()

任何可用的jQuery.Deferred对象

当打印函数被调用时的jQuery.Deferred对象

上面的参数说明已经很详细了,这里要说明的是 iframe参数true 或 false是指是否蒋打印的内容重新赋值给body,新开页面进行打印
deferred参数可以去搜下官网介绍,调用成功失败后的回调

$("#print").print({
            //Use Global styles
            globalStyles : false,
            //Add link with attrbute media=print
            mediaPrint : false,
            //Custom stylesheet
            stylesheet : "",
            //Print in a hidden iframe
            iframe : true,
            //Don't print this
            noPrintSelector : "",
            //Add this at top
            prepend : "",
            //Add this on bottom
            append : "===============<br/>"+now,
            deferred:$.Deferred().done(function () {
                alert("成功")
            })
        });

这种方法可以很轻松的实现打印只需要 给个隐藏框 调用时显示 打印完再隐藏,问 题是无论chrome还是ie都需要调出浏览器打印控件。

大多数打印机用的是A4纸,而我们项目需要用到的是小票纸 宽56mm 这就需要设置浏览器打印选项,每次设置起来很不方便

java pda连接蓝牙打印机打印 js蓝牙打印机_Boo


2.php后端打印php_printer.dll扩展
参考博客
很强大但也很操蛋,只能再本地服务器安装打印,远程实现不了


3.一个很不错的控件Lodop,几乎支持所有浏览器和打印机
文档很详细,支持套打,分页打

LODOP=getLodop();
        LODOP.PRINT_INIT(""); //初始化
        LODOP.SET_PRINT_PAGESIZE(1, "56mm","90mm","")//设置纸张大小
        LODOP.SET_PRINT_STYLE("ItemType",0); //页脚页眉
        LODOP.SET_PRINT_STYLE("FontSize",10);
        LODOP.SET_PRINT_STYLE("Bold",1);
        LODOP.ADD_PRINT_TEXT("80mm","0","56mm","1mm",'=============');
        LODOP.ADD_PRINT_BARCODE("55mm","13mm","30mm","30mm","QRCode","1233")//二维码
        LODOP.ADD_PRINT_HTM("0","0","56mm","80mm",document.getElementById("print").innerHTML);//获取节点
        LODOP.PREVIEW();  //打印预览
        LODOP.PRINT();//直接打印

唯一不美的是 不购买,只能预览打印 直接打印的话页脚会有一个水印。