最近做一小程序需要对Web打印进行精细的位置控制,IE自身的打印功能基本上算是半残废,无法自定义纸张,无法直接打印,并且由于浏览器版本或操作系统本身的设置问题,连最基本的边距设置都会有问题,总之打印已经成为Web程序的最大难题,因此使用ActiveX控件打印是最好的解决方案,但现在的控件动不动就价格几千上万,所幸目前免费的选择还有两个,一是windows系统本身带有WebBrowser.ExecWB控件,但这个由于系统的安全设置方面的限制,用起来不太灵光,二是使用第三方的控件ScriptX(http://www.meadroid.com/scriptx/),ScriptX基本功能免费,但高级功能是收费的,下面我就把最近在项目中使用ScriptX的经验总结一下。更多细节您可以查看官方手册:http://www.meadroid.com/scriptx/docs/printdoc.htm
简单使用:
在页面head中引入控件:
<style media=print>
.PageNext{page-break-after: always;}
.Noprint{display:none;}
</style>
设置打印参数:
// -------------------基本功能,可免费使用-----------------------
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.PrintSetup();//打印设置
factory.printing.Preview();//打印预览
factory.printing.WaitForSpoolingComplete();//等待上一个打印任务完全送入打印池,在连续无确认打印时非常有用
factory.printing.EnumPrinters(index);//枚举已安装的所有打印机,主要用于生成打印机选择功能
<html>
<head>
<title> ScriptX使用 </title>
<script language="javascript">
//isZong:是否纵向打印 isSelectPrinter:是否选择打印机,false直接使用默认打印机打印
function printit(isZong, isSelectPrinter) {
try {
xprint.printing.portrait = isZong;//true为纵向,false为横向
xprint.printing.footer = "页脚";//页脚
xprint.printing.header = "页眉";//页眉
xprint.printing.leftMargin =0.5;//左
xprint.printing.topMargin = 0.5;//上
xprint.printing.rightMargin = 0.5;//右
xprint.printing.bottomMargin = 0.5;//下
//xprint.printing.PageSetup(); //弹出打印设置窗口
//xprint.printing.Preview(); //弹出打印预览窗口
xprint.printing.Print(isSelectPrinter); //是否弹出打印机选择页面
} catch(e) {
alert('没有设置默认打印机件');
}
}
</script>
</head>
<body>
<object id="xprint" style="display:none" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="smsx.cab#version=6,5,439,72"></object>
打印测试哈哈哈
<input type="button" value="直接" onclick="printit(true, false)" />
<input type="button" value="不直接" onclick="printit(false, true)" />
</body>
</html>
分享到:
相关推荐
在IT行业中,尤其是在Web开发领域,用户可能会遇到各种问题,其中一种常见的问题是“IE打印有URL”。这通常指的是在使用Internet Explorer(IE)浏览器打印网页时,页面底部会自动显示当前网页的URL,这对于某些不...
**IE打印控件详解** IE打印控件是用于在Internet Explorer浏览器中实现高效、自定义打印功能的一种组件。它通常由一系列DLL动态链接库和安装程序组成,旨在增强用户在网页浏览时的打印体验,提供比浏览器内置打印...
可以方便的设置IE打印边距,不用每次都重新设置,设置一次就可以永久生效
总的来说,IE打印控件smsx.cab是一个方便开发者在Web环境中实现高级打印功能的工具,尽管它受限于特定的浏览器和操作系统,但在过去的一段时间里,尤其是在企业级应用中,它发挥了重要的作用。随着技术的发展,现在...
"VB.net中应用IE打印的设置"这个主题就是关于如何利用Internet Explorer(IE)的内置打印功能来实现在VB.NET应用程序中的打印操作。下面我们将详细探讨这个过程,以及相关的关键知识点。 首先,我们要明白,VB.NET...
### 使用JavaScript调用IE浏览器打印和预览功能 在网页开发过程中,经常需要实现文档的打印和预览功能。在Internet Explorer(IE)浏览器中,可以通过JavaScript与ActiveX控件结合来实现这些功能。下面将详细介绍...
IE打印去除页眉页脚的脚本 通过修改注册表的方法,去除直接打印网页内容时自动附加的页眉页脚。
如何用IE打印网页.doc
asp ,js IE 打印功能简易实用代码演示实例,用记事本打开,或另存为网页形式均可浏览
标题中的“IE直接打印源码.rar”指的是一个压缩文件,其中包含了用于实现Internet Explorer浏览器直接打印功能的源代码。在Web开发中,直接打印功能允许用户无需先保存或打开文件,就能直接通过浏览器将网页内容发送...
在“ie浏览器 js调用 ocx 异步打印pdf、图片控件”的场景中,我们将探讨如何利用JavaScript调用OCX控件来实现异步打印功能,特别是针对PDF和图片文件。 首先,我们需要在Web服务器上部署这个OCX控件。部署过程包括...
### 调用IE内置打印组件完成Web打印方案及例程 #### 一、概述 在Web开发领域,实现网页内容的打印功能是一项常见的需求。本文档将详细介绍如何利用Internet Explorer(IE)浏览器内置的打印组件来实现网页内容的...
### IE9 网页 Adobe PDF 打印失败的解决方案 在使用Internet Explorer 9(简称IE9)浏览网页时,遇到Adobe PDF文档打印失败的问题是较为常见的技术难题之一。这种情况不仅会影响工作效率,还可能引发一系列相关的...
IE下页面打印控件 ...1.屏蔽IE打印时出现的打印设置框。 2.自动设置各打印控制参数。 3.实现自动打印。 使用方法 控件的ID为clsid:AE1A309B-6FFA-4FCF-B07F-CB97FFD56B1B 使用Object标签包裹即可。 如 ...
调用WINDOWS的打印功能,实现WEB打印。简单实用,很实用
这个方法主要利用了IE浏览器内核中的WebBrowser控件,该控件可以嵌入到网页中,并执行与浏览器相同的功能,包括打印。 WebBrowser控件的类ID(Class ID)是`CLSID:8856F961-340A-11D0-A96B-00C04FD705A2`,它可以...
1.IE网络等级设置过高,请降到中级或以下进行安装。 2.用户权限不是administration组的权限,无权进行安装。 3.病毒造成注册表被锁等。 如以上情况均不能安装,请用administration组权限用户从网络下载web打印控件...
### 去掉打印时的页眉和页脚(IE6-IE8) 在早期的互联网浏览器中,如Internet Explorer 6至8版本,用户可能会遇到打印网页时自动包含页眉和页脚的问题,这通常包含了网址、日期或浏览器自动生成的一些文本。这些...
在IT行业中,静默打印(Silent Printing)是一种高级功能,允许应用程序在用户无须交互的情况下直接发送打印任务到打印机。这种技术常用于自动化流程、后台服务或无人值守的环境中,以提高效率并减少人工干预。针对...