使用Activex实现自动打印 不使用PAZU
最开始使用PAZU控件来实现自动打印。安装了Smart Printer来打印tif文件。
使用localhost是可以的。但是用ip访问,就不能用。需要license。虽然是免费申请的。但是麻烦啊,而且我的服务器是外网不能访问的。心一狠,我就不信不用pazu做不出来。。。。
?
网上找了下。使用smsx.cab来实现。首先下载安装文件。安装好后 有个smsx.cab文件 。拷贝到项目里。
在页面上添加代码
JS代码
<script defer>// -------------------基本功能,可免费使用-----------------------factory.printing.header = "";//页眉factory.printing.footer = "";//页脚factory.printing.SetMarginMeasure(1);//页边距单位,1为毫米,2为英寸//边距设置,需要注意大部分打印机都不能进行零边距打印,即有一个边距的最小值,一般都是6毫米以上//设置边距的时候时候如果设置为零,就会自动调整为它的最小边距factory.printing.leftMargin = 7;//左边距factory.printing.topMargin = 7;//上边距factory.printing.rightMargin = 7;//右边距factory.printing.bottomMargin = 7;//下边距factory.printing.portrait = true;//是否纵向打印,横向打印为false//--------------------高级功能---------------------------------------------factory.printing.printer = "EPSON LQ-1600KIII";//指定使用的打印机//factory.printing.printer = "\\\\cosa-data\\HPLaserJ";//如为网络打印机,则需要进行字符转义factory.printing.paperSize = "A4";//指定使用的纸张factory.printing.paperSource = "Manual feed";//进纸方式,这里是手动进纸factory.printing.copies = 1;//打印份数factory.printing.printBackground = false;//是否打印背景图片factory.printing.SetPageRange(false, 1, 3); //打印1至3页//---------------------常用函数--------------------------------factory.printing.Print(false);//无确认打印,true时打印前需进行确认//factory.printing.Print(false, pageFrame); pageFrame为Iframe或Frame框架名称,只打印框架内容factory.printing.PrintSetup();//打印设置factory.printing.Preview();//打印预览factory.printing.WaitForSpoolingComplete();//等待上一个打印任务完全送入打印池,在连续无确认打印时非常有用factory.printing.EnumPrinters(index);//枚举已安装的所有打印机,主要用于生成打印机选择功能</script>?缺点:只能在IE下使用。需安装active控件。
注意:需要把服务器IP添加为本地信任站点。否则打印不能正确执行。
?
1 楼 yanyuening 2010-04-28 不管调用
factory.printing.Print(false);
还是
factory.printing.Print(true);
都还是会弹出选择打印机的窗口 如何解决 2 楼 bluerose 2010-04-29 楼上没仔细看我代码吧
factory.DoPrint(false); //设置为false,直接打印
改为这个试试