<html>
<head>
<title>smsx.cab</title>
<!-- MeadCo ScriptX -->
<object id="factory" style="display:none"
classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
codebase="smsx.cab#Version=6,3,435,20">//文件地址
</object>
<script defer>
function window.onload() {
if (!factory.object) {
alert("打印控件没有正确安装!");
return;
} else {
// -- advanced features
factory.printing.SetMarginMeasure(2); // measure margins in inches
factory.printing.printer = "HP DeskJet 870C";
factory.printing.paperSize = "A4";
factory.printing.paperSource = "Manual feed";
factory.printing.collate = true;
factory.printing.copies = 2;
factory.printing.SetPageRange(false, 1, 3); // need pages from 1 to 3
// -- basic features
factory.printing.header = "This is MeadCo";
factory.printing.footer = "Printing by ScriptX";
factory.printing.portrait = true;
factory.printing.leftMargin = 5.0;
factory.printing.topMargin = 5.0;
factory.printing.rightMargin = 5.0;
factory.printing.bottomMargin = 5.0;
}
}
</script>
<script language="javascript">
function printTure() //打印函数
{
document.all("dayindiv").style.display="none";//隐藏按钮
factory.printing.Print(true); //调用控件打印
document.all("dayindiv").style.display="";//显示
}
function Print(frame) {
factory.printing.Print(true, frame) // print with prompt
}
</script>
</head>
<body>
<div>
<pre>
我被打印出来了:
</pre>
</div>
<div>
<p style="page-break-before:always">我在另外一页</p>
</div>
<div align="center" id="dayindiv" name="dayindiv">
<input type=button value="打印本页" onclick="printTure()">
<input type=button value="页面设置" onclick="factory.printing.PageSetup()">
<input type=button value="打印预览" onclick="factory.printing.Preview()">
</div>
</body>
</html>
在网页中嵌入:
<object id="factory" viewastext style="display:none" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="hppt://url/smsx.cab#Version=6,4,438,06"></object>
这里备注一些常用的javascript功能控制:
// -------------------基本功能,可免费使用-----------------------
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>
在上边的代码中,大家需要注意以下<object id="factory" style="DISPLAY: none" viewastext classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="http://www.a.com/smsx.cab#Version=6,3,434,26"></object>
这段代码用来加载cab文件,clsid和codebase必须要和你下载的cab中的信息对应,否则组件会加载错误,这两项其实不难找,只要你用winrar打开你下载的cab文件,然后找到扩展名是.inf的文件,然后打开之,就能看到了。