控件CLSID
A04AC669-CB70-4E8B-9CC0-9B73FC153784
功能描述
自己写的一个控件,某人寿公司的需求,可惜最后没用到。
需求如下:
1、给你一个一个PDF文档,让你打印该文档,且不同页从打印机的不同纸盒出纸(需求真是千奇百怪)。
接口如下:
/************************************************/
//发送打印任务到打印队列
//参数: strPath-> 文件路径
// pageFrom-> 打印开始页
// pageTo-> 打印结束页
// nBoxNo-> 打印机纸盒编号
/************************************************/
void SendPrintData(BSTR strPath, LONG pageFrom, LONG pageTo, SHORT nBoxNo);
/************************************************/
//设置打印机
//参数: paperType-> 纸张类型(例如:A4)
// paperDirection-> 纸张方向(横向:1,纵向:2)
// nCopies-> 打印份数
// bDuplex-> 是否双面打印
/************************************************/
SHORT SetPrint(BSTR paperType,SHORT paperDirection, SHORT nCopies, SHORT bDuplex);
/************************************************/
//打印打印队列中的所有任务
/************************************************/
void PrintAll();
源码地址
http://download.csdn.net/detail/wu_tongyu/9516112
测试程序
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> PDF打印测试 </title>
</head>
<script type="text/javascript">
function handleFIles(files)
{
var file = files[0];
var fd = document.getElementById("file");
//alert(fd.value);
}
function SendData()
{
var sPath = document.getElementById("path").value;
var from = parseInt(document.getElementById("from").value);
var to = parseInt(document.getElementById("to").value);
var boxno = parseInt(document.getElementById("boxno").value);
var ocx = document.getElementById("PdfPrinterOCX");
ocx.SendPrintData(sPath,from,to,boxno);
}
function Print()
{
var ocx = document.getElementById("PdfPrinterOCX");
ocx.PrintAll();
}
function PrintDefault()
{
var strPath = document.getElementById("path").value;
//var szPath = strPath.replace(/\\+/,"\\\\");
//alert(szPath);
var ocx = document.getElementById("PdfPrinterOCX");
ocx.PrintByDefault(strPath);
}
function SelectFile()
{
try
{
var Message = "\u8bf7\u9009\u62e9\u6587\u4ef6\u5939"; //选择框提示信息
var Shell = new ActiveXObject("Shell.Application");
var Folder = Shell.BrowseForFolder(0, Message, 64, 17); //起始目录为:我的电脑
//var Folder = Shell.BrowseForFolder(0, Message, 0); //起始目录为:桌面
if (Folder != null) {
Folder = Folder.items(); // 返回 FolderItems 对象
Folder = Folder.item(); // 返回 Folderitem 对象
Folder = Folder.Path; // 返回路径
if (Folder.charAt(Folder.length - 1) != "\\") {
Folder = Folder + "\\";
}
document.getElementById(path).value = Folder;
return Folder;
}
}
catch (e) {
alert(e.message);
}
}
</script>
<body>
<OBJECT ID="PdfPrinterOCX" CLASSID="clsid:A04AC669-CB70-4E8B-9CC0-9B73FC153784"></OBJECT>
<!-- 路径编码方式好像有问题
<div style="margin-bottom:30px">
<p>请选择PDF文件:</p>
<input type="file" id="file" onchange="handleFIles(this.files)"/>
</div>
-->
<table>
<tr>
<td>输入PDF文件路径:</td>
<td><input type="input" id="path" value="c:\\test.pdf"/></td>
</tr>
<tr>
<td>输入打印起始页:</td>
<td><input type="input" id="from"/></td>
</tr>
<tr>
<td>输入打印终止页:</td>
<td><input type="input" id="to"/></td>
</tr>
<tr>
<td>输入出纸盒编号:</td>
<td><input type="input" id="boxno"/></td>
</tr>
<table>
<div style="margin:10px">
<input type="button" onclick="SendData()" value="发送打印数据"/>
<input type="button" onclick="Print()" value="打 印"/>
<input type="button" onclick="PrintDefault()" value="自动选择纸盒打印"/>
</div>
</body>
</html>
时间: 2024-11-10 22:58:16