码迷,mamicode.com
首页 > 其他好文 > 详细

分享一个PDF打印控件

时间:2016-05-12 15:30:53      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

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

标签:

原文地址:http://blog.csdn.net/wu_tongyu/article/details/51367724

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!