window.open(<图片url>);
然后在打开的窗口中调用window.print()

解决方案 »

  1.   

    比如<img id="image" src="gaga.jpg"></img>//这是大家熟悉的打印控件
    <object   id='WebBrowser'   width=0   height=0   classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'  /> 
    //打印预览
    WebBrowser1.ExecWB(7, 1);
    可是都没有办法指定打印id=“image”的那张图片,WebBrowser1.ExecWB(7, 1);只是把整个网页打印出来了。
    img的id是通过ext。get()获得的,只能通过id打印,或者一对<DIV><IMG SRC=""></IMG></DIV>来控制图片。
    40分求解决之道,高手帮帮忙啊。谢谢了。
      

  2.   


    此法我用过了,报错啊。window.open( <图片url>); 行不通啊 。
      

  3.   

    经测试可行``当然你可能一个页面里有非常多图片,你可以在脚本里控制一下,你要分开打印的放到一个容器里,再遍历一下你的Form表单,把不需要的去掉,这应该很简单了<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
        <script type="text/javascript" language="javascript">
            function mytext(){
              document.getElementById("image1").style.visibility="hidden";
              document.getElementById("mybtn").style.visibility="hidden";
              document.getElementById("WebBrowser").ExecWB(7,1); 
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <img id="image" src="自己.jpg" style="visibility:visible"> </img>
            <img id="image1" src="自己1.jpg" style="visibility:visible"> </img>        <object id="WebBrowser" width="0"  height="0"  classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
            <input type="button" id="mybtn" onclick="mytext()" value="测试print" />
        </div>
        </form>
    </body>
    </html>
      

  4.   

    还有一种办法,我是上一次帮财务弄套打的时候做的,就设置一下样式就可以了,这是最简单的page-break-after:always
    加入这个样式,它会把往你插入这个样式的地方,再打印时插入页分隔符如:
    <table border=0 style="width:100%">
    <tr>
       <td><img id="img0" src="../a.jpg">  
    </tr>
    <tr>
       <td style="page-break-after:always"><img id="img1" src="../a.jpg">  
    </tr>
    <tr>
       <td style="page-break-after:always"><img id="img2" src="../a.jpg">  
    </tr>
    </table>-----------
    这样子就OK了,但是记住第一个td里面不要插入,这样分产生第一页变成空白的了,因为被插入页分隔符了..
      

  5.   

    <table border="0" style="width: 100%;">
                <tr  style="page-break-after: always">
                   <td >
                        <img id="img0" src="自己.jpg">
                   </td>
                </tr>
                <tr  style="page-break-after: always">
                    <td >
                       <img id="img1" src="自己.jpg">
                    </td>
                </tr>
                <tr>
                    <td >
                        <img id="img2" src="自己.jpg">
                    </td>
                </tr>
            </table>---
    上面说错了,不好意思。是最后一行不能插入
      

  6.   

    谢谢大家的帮助,我也经过了一些测试,确实有些方法可以用,但是在我的项目中,因为用的是Ext框架,控件嵌套控件,panel里面还有很多的panel,根本不能像上面的例子那样通过对<img>标签对的内容去控制它。
    因为document.getElementById("WebBrowser").ExecWB(7,1); 是打印整个屏幕的,所以我没有办法控制图片以外的元素,真的没有办法,我的图片只是在某个嵌套层中的一小部分,所以啊,只能取图片的id,然后根据某种方法依据这个id打印图片,以为仁兄出了这样的思路但是我ie报“拒绝访问”的错误,代码如下:var   imgObj   =   new   Image();   
    imgObj.src  = 'd:\\image\\03.jpg';//这里实际跟取得图片id没有什么区别了,我的程序里也可以取得图片src
    function   print()   
     {   
       var   prtImg;   
       prtImg   =   window.open(imgObj.src);   //
       prtImg.document.execCommand('print');   //拒绝访问
       prtImg.close();  
    }   彻底没有办法了。有时程序是无解的,累死了。
    大家帮帮忙啊,谢谢lqscoke的热心帮助,谢谢。