分享一个PDF打印控件

控件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>

你可能感兴趣的:(pdf打印ocx)