`
lion222
  • 浏览: 125159 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

web 套打的一些经验ZT

阅读更多

        最近做了一个项目,并不大。但用到WEB打印这方面内容,没想中间遇到很多问题,曾在网上找过许多解决方案,有些控件但是国内的基本都是需要注册收费的,只有国外的一个ScriptX是免费的,看到许多人用,但这个控件被IE等众多的安全工具所困扰,常常需要设置一堆东西,对于电脑水平不是很高客户来说确实很麻烦,不过我也只用它去掉了IE打印的页眉页脚,打印还是用的IE的WEBBROWSER,不说费话了,下面先介绍一下我思路。
        由于是要套打,所以套打的页面不可能给用户看,需要单独制作一个套打的页面,只有要打印的内容,位置用 <DIV     style= "LEFT:   35mm;   FONT:   9pt   宋体;   POSITION:   absolute;   TOP:   75mm "> 打印内容 </DIV> 其中,left   是你打印纸从最左边到内容的距离,top   是从纸最上边到打印内容的距离,这个距离要用尺量好,并且减去19.05,这个数是IE页面设置中页距的上下左右的默认值,不减就对不准了。
        下面是在网上找到一个脚本,专门是用来调用套打页面的,并根据我的需要做了点改动。
window.print   =   printFrame;

//   main   stuff
function   printFrame(frame,   onfinish)   {
 
    if   (   !frame   )   frame   =   window;

    function   execOnFinish()   {
                switch   (   typeof(onfinish)   )   {
                case   "string ":   alert( 'print...   ');   break;//execScript(onfinish)
                case   "function ":   onfinish();
                }
        if   (   focused   &&   !focused.disabled   )   focused.focus();
    }
 

    if   ((   frame.document.readyState   !==   "complete ")   &&(   !frame.document.confirm( "The   document   to   print   is   not   downloaded   yet!   Continue   with   printing? ")   ))
    {
        execOnFinish();
        return;
    }

 
        var   eventScope   =   printGetEventScope(frame);
        var   focused   =   document.activeElement;
         
        window.printHelper   =   function()   {
                execScript( "on   error   resume   next:   printWB.ExecWB   6,   1 ",   "VBScript ");
                printFireEvent(frame,   eventScope,   "onafterprint ");
                printWB.outerHTML   =   " ";
                execOnFinish();
                window.printHelper   =   null;
        }
 
        document.body.insertAdjacentHTML( "beforeEnd ",
                " <object   id=\ "printWB\ "   width=0   height=0   \
                classid=\ "clsid:8856F961-340A-11D0-A96B-00C04FD705A2\ "> ");
         
        printFireEvent(frame,   eventScope,   "onbeforeprint ");
        frame.focus();
        window.printHelper   =   printHelper;
        setTimeout( "window.printHelper() ",   0);
}
function   hideButton()
{
            document.getElementById( "btn_Back ").style.display   =   "none ";
}
 
function   printFixedApp()
{
      if(confirm( '确定要打印吗? '))//这些是我自己加的,业务需要隐藏点过的按钮
        {                      
                document.getElementById( "btn_Back ").style.display   =   "none ";
                document.getElementById( "btn_print ").style.display   =   "none ";            
                document.getElementById( "btn_modify ").style.display   =   "none ";
             
                printHidden( "printPage_fixed.aspx ");//里面是套打的页面
           
        }
}
function   printHidden(url)   {
    document.body.insertAdjacentHTML( "beforeEnd ",
        " <iframe   name=printHiddenFrame   width=0   height=0> </iframe> ");
    var   doc   =   printHiddenFrame.document;
    doc.open();
    doc.write( " <body   onload=\ "parent.onprintHiddenFrame()\ "> ");
    doc.write( " <iframe   name=printMe   width=0   height=0   src=\ " "   +
            url   +   "\ "> </iframe> ");
    doc.write( " </body> ");
    doc.close();
}

function   onprintHiddenFrame()   {
    function   onfinish()   {
        printHiddenFrame.outerHTML   =   " ";
        if   (   window.onprintcomplete   )
        {
                window.onprintcomplete();
                alert( "print   completed! ");
        }
          window.location.href   =   "ApplicationBillView_fixed.aspx ";//打印完成后转到其它页      
    }
    printFrame(printHiddenFrame.printMe,   onfinish);
}

//   helpers
function   printIsNativeSupport()   {
    var   agent   =   window.navigator.userAgent;
    var   i   =   agent.indexOf( "MSIE   ")+5;
    return   parseInt(agent.substr(i))   > =   5   &&   agent.indexOf( "5.0b1 ")   <   0;
}

function   printFireEvent(frame,   obj,   name)   {
    var   handler   =   obj[name];
    switch   (   typeof(handler)   )   {
        case   "string ":   frame.execScript(handler);   break;
        case   "function ":   handler();
    }
}

function   printGetEventScope(frame)   {
    var   frameset   =   frame.document.all.tags( "FRAMESET ");
    if   (   frameset.length   )   return   frameset[0];
    return   frame.document.body;
}
剩下的就等着打印机干活吧。

分享到:
评论

相关推荐

    zt411-zt421-ug-zhcn_ZT411/ZT421_斑马打印机手册_

    斑马打印机ZT411和ZT421是工业级条码和标签打印机,广泛应用于制造业、物流、零售业等对打印质量和效率有高要求的领域。这两款打印机以其出色的性能、耐用性和易用性赢得了用户的信赖。这份中文手册详细地介绍了ZT...

    ZT213/ZT213LEEA规格书V2.10-低功耗RS232多通道USB收发器/驱动器芯片手册

    《ZT213/ZT213LEEA:低功耗RS232多通道USB收发器/驱动器芯片详解》 ZT213/ZT213LEEA是一款专为低功耗应用设计的RS232多通道USB收发器和驱动器芯片,广泛应用于数据通信、工业控制、物联网设备等领域。本文将深入...

    ZT7548 Datasheet Rev.1.0.3.pdf

    ZT7548是一款第五代电容式触控屏幕控制器,支持30x18或18x30的通道配置,可以同时检测最多10个触点。该控制器能够与最多8个键与TSP(触控屏面板)或FPC(柔性印刷电路板)模式一起工作,在多点触控时无扫描率下降的...

    ZT410打印机IP地址设置网络打印机

    ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机

    Zebra ZT230 条码打印机驱动

    斑马(Zebra)ZT230条码打印机是一款广泛应用在工业环境中的高效设备,其驱动程序是确保打印机正常工作的重要组成部分。本驱动程序专为Zebra的ZT210、ZT220及ZT230系列打印机设计,提供了全面的功能支持,以实现高...

    斑马zt410中文库

    斑马(Zebra)ZT410是一款先进的桌面级条码打印机,被广泛应用于物流、零售、医疗、制造业等多个行业。这款打印机以其高效、耐用和易于操作的特点深受用户喜爱。"斑马zt410中文库"指的是为ZT410打印机特别设计的中文...

    斑马打印机ZT210用户指南

    "斑马打印机ZT210用户指南" 本用户指南旨在为Zebra ZT210/ZT220/ZT230打印机的用户提供操作和维护指南,该设备是一种工业级的条码打印机,具有高速打印、高速处理和高质量打印输出等特点。 版权信息 本手册的版权...

    斑马ZT510打印机驱动文件

    斑马ZT510打印机驱动文件

    RS485通信芯片zt13085e的原理图库和PCB库

    5. **电气隔离**:虽然描述中未提及,但一些RS485芯片会提供电气隔离功能,以防止地环路问题,提高系统的安全性和可靠性。 6. **工作电压范围**:通常RS485芯片的工作电压范围在+5V至+24V之间,适应性强,能应用于...

    zt云流量HTML响应式模板

    在"zt云流量HTML响应式模板"中,设计师和开发者精心构建了多套样式规则,确保在各种分辨率和比例的屏幕上,网页内容都能自适应地排列和显示。这不仅提高了用户的浏览满意度,也简化了网站的维护,因为只需要维护一套...

    斑马打印机(ZT210).docx

    斑马打印机ZT210是一款专业的工业级条形码和标签打印机,广泛应用于物流、零售、医疗等行业的标签制作。以下是对如何设置和使用斑马ZT210打印机的详细步骤: 首先,我们需要安装电脑驱动。双击下载好的驱动程序文件...

    zt-exec-1.9-API文档-中文版.zip

    赠送jar包:zt-exec-1.9.jar; 赠送原API文档:zt-exec-1.9-javadoc.jar; 赠送源代码:zt-exec-1.9-sources.jar; 赠送Maven依赖信息文件:zt-exec-1.9.pom; 包含翻译后的API文档:zt-exec-1.9-javadoc-API文档-...

    证通ZT598金属键盘开发资料.rar

    开发者需要具备一定的嵌入式系统开发经验,对SDK的深入理解和熟练应用是成功集成的关键。通过学习和实践,开发者将能充分利用这款设备的安全特性和强大功能,打造出满足安全标准的金融终端产品。

    斑马zt210打印机驱动 v5.1.07.5146 官方版

    斑马zt210是一款专为中国市场设计的工业条码打印机,非常适合不需要频繁更换标签的条码标签应用。这里给大家提供斑马zt210驱动下载,推荐有需要的用户下载安装。斑马zt210打印机优势:◆ 节省空间* 小巧紧凑和流线型...

    ZT210 230加载介质和碳带

    《ZT210 230加载介质和碳带》 在条形码和标签打印领域,Zebra公司的ZT210和ZT230打印机是广泛应用的设备,以其可靠性和效率赢得了广大用户的青睐。这两个型号的打印机都属于入门级工业级条码打印机,适用于各种商业...

    zt-exec-1.9-API文档-中英对照版.zip

    赠送jar包:zt-exec-1.9.jar; 赠送原API文档:zt-exec-1.9-javadoc.jar; 赠送源代码:zt-exec-1.9-sources.jar; 赠送Maven依赖信息文件:zt-exec-1.9.pom; 包含翻译后的API文档:zt-exec-1.9-javadoc-API文档-...

    zebra ZT400系列打印机技术手册

    ### zebra ZT400系列打印机技术手册 #### 知识点概述: 1. **版权及法律声明**:Zebra ZT400系列打印机技术手册的版权及相关软件固件的所有权归属ZIH Corp.及其许可证持有者,未经授权复制会受到法律制裁。 2. **...

    斑马Zebra ZT510 驱动下载安装.exe

    斑马Zebra ZT510 驱动下载安装 使用中有任何问题可以关注并私信,如果资源对您有帮助记得关注收藏好评哟!

    霍尼维尔 ZT930 点火变压器.PDF

    霍尼维尔 ZT930 点火变压器PDF,霍尼维尔 ZT930 点火变压器

Global site tag (gtag.js) - Google Analytics